如何在不同的目录中编译和运行Java类?
我正在编写一个makefile,在另一个目录中编译.java
文件,然后我想运行它,而不更改目录。 我想做一些事情:
$(SQM_JAVA_TOOL_DONE) : $(SQM_JAVA_TOOL) $(shell cd /home_dir) javac myjavafile.java java myjavafile
其中Java文件是/home/myjavafile.java
,并且makefile没有从/home
运行。
我怎样才能做到这一点?
我可能误解了这个问题,但你可以编译
javac /home/MyJavaFile.java
这将在/home
创建MyJavaFile.class
然后,您可以通过在类路径中包含/home
来运行它。 例如
java -cp /home MyJavaFile
如果要在不同的目录中生成类文件,则可以使用-d
选项进行javac
。
将-d
命令行参数与javac
一起使用,告诉它您要将编译的类文件存储在哪个目录中。然后,要运行该程序,只需在classpath中包含此目录:
javac -d some/directory myjavafile.java java -cp some/directory myjavafile