关于javac:如何在不同的目录中编译和运行Java类?

How can I compile and run a Java class in a different directory?

我正在写一个makefile,它在另一个目录中编译一个.java文件,然后我想在不更改目录的情况下运行它。我想做些事情:

1
2
3
4
$(SQM_JAVA_TOOL_DONE) : $(SQM_JAVA_TOOL)
        $(shell cd /home_dir)
        javac myjavafile.java
        java myjavafile

其中Java文件是EDCOX1(1),而MaX文件不是从EDCOX1(2)中运行的。

我该怎么做?


我可能误解了这个问题,但你可以用

1
javac /home/MyJavaFile.java

这将在/home中创建MyJavaFile.class

然后可以在类路径上包含/home来运行它。例如

1
java -cp /home MyJavaFile

如果要在不同的目录中生成类文件,那么可以使用-d选项来生成javac


使用javac-d命令行参数告诉它您希望将编译的类文件存储在哪个目录中。然后,要运行该程序,只需将该目录包含在类路径中:

1
2
javac -d some/directory myjavafile.java
java -cp some/directory myjavafile