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

vet*_*982 30 java javac

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

$(SQM_JAVA_TOOL_DONE) : $(SQM_JAVA_TOOL)
        $(shell cd /home_dir)
        javac myjavafile.java
        java myjavafile
Run Code Online (Sandbox Code Playgroud)

Java文件所在的位置/home/myjavafile.java,并且未运行makefile /home.

我怎样才能做到这一点?

mik*_*kej 37

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

javac /home/MyJavaFile.java
Run Code Online (Sandbox Code Playgroud)

这将创建MyJavaFile.class/home

然后,您可以通过/home在类路径中包含它来运行它.例如

java -cp /home MyJavaFile
Run Code Online (Sandbox Code Playgroud)

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


Mic*_*ael 34

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

javac -d some/directory myjavafile.java
java -cp some/directory myjavafile
Run Code Online (Sandbox Code Playgroud)