2016-07-31 33 views
0

可能有更好的方法来做到这一点(如果有请让我知道),但我想使它,这样我就不必输入每次我想要编译和运行我的程序时都非常多。我可能会收到一些关于使用Makefile来编译和运行我的Java程序的评论,这很好。如果我真的在开发Java应用程序,我会使用IDE。这只是一个班级任务。

我想将我的参数从命令行传递给我的Makefile。
说我要运行这个命令:

java Driver -n $(arg1) -h $(arg2)

这里是我到目前为止,但它不工作

ARG1 =`回声$(MAKECMDGOALS )| AWK {$$ 1}`

理想的情况下,一切我都必须键入是make 1 2这将运行java Driver -n 1 -h 2

回答

1

这是真的相反的是如何让这样运作的。但如果你坚持,在这里它是:

arg1 := $(word 1,$(MAKECMDGOALS)) 
arg2 := $(word 2,$(MAKECMDGOALS)) 

null: 
    java Driver -n $(arg1) -h $(arg2) 

%:null 
    @: 
+0

你能解释make应该如何工作吗?或者你的意思是什么?我一直只使用make来编译和运行我的程序。是不是一个Makefile只是执行一堆命令? @Beta –

+0

@ J-Win:Make的简单参数应该是目标名称,而不是其他类型的参数。传递参数的语法是'make arg1 = 1 arg2',如果你想'make 1 2'具有相同的效果(为了保存输入),那么你会得到一个奇怪的makefile,就像我上面写的那样。 – Beta

+0

有道理。我想我会把它吸起来,然后做 –