2013-04-29 69 views
1

我有一个使用eclipse创建的项目。 现在我想将这个项目复制到我的Linux计算机上进行编译并在那里运行。Java makefile运行

为此,我想创建一个用于自动编译和运行的makefile。

我已经创建了一个makefile,它可以编译我的项目。 但现在它应该编译后开始我的程序,我不知道如何做到这一点。

我想键入“make”,它应该编译源代码,之后它应该自动启动我的主。现在我有一个shellcript,它可以执行以下操作。

make 
java Main 

我已经尝试运行“make run”,但出现错误。

No rule to make target 'Main', needed by 'run'. 

这是我的Makefile。

JFLAGS = -g 
JC = javac 
JVM= java 
FILE= 
.SUFFIXES: .java .class 
.java.class: 
    $(JC) $(JFLAGS) $*.java 
CLASSES = \ 
    Main.java \ 
    Class1.java \ 
    Class2.java \ 
    Class3.java \ 
    Class4.java 

MAIN = Main 

default: classes 

classes: $(CLASSES:.java=.class) 

run: $(MAIN).class 
    $(JVM) $(MAIN) 

clean: 
    $(RM) *.class 
+5

使用make来构建Java程序是只是一种命运多approach的方法。它可能适用于非常简单的项目,但当你有更多的类,包中的类,内部类的类时等等,你永远不会获得依赖关系。做你自己的忙,花一些时间学习Maven或Ant。顺便说一句:没有理由在Linux上编译源代码(除非是为了好玩和利润),只需使用Windows窗口中的编译类即可! – 2013-04-29 20:08:16

+0

另外:Eclipse可以为您导出一个ant构建文件,它将构建您的项目并将其编译为单个jar文件。真的没有必要永远用java做make – MTilsted 2017-12-01 02:02:11

回答

1

您需要添加classes而非Main.class作为运行的依赖,因为你还没有为Main.class定义的规则,即这应该工作:

run: classes 
    $(JVM) $(MAIN)