web-dev-qa-db-ja.com

別のディレクトリでJavaクラスをコンパイルして実行するにはどうすればよいですか?

別のディレクトリで.Javaファイルをコンパイルするmakefileを書いているのですが、ディレクトリを変更せずに実行したいです。私は次のラインに沿って何かをしたいです:

$(SQM_Java_TOOL_DONE) : $(SQM_Java_TOOL)
        $(Shell cd /home_dir)
        javac myjavafile.Java
        Java myjavafile

ここで、Javaファイルは/home/myjavafile.Javaであり、makefileは/homeから実行されていません。

これどうやってするの?

29
vette982

私は質問を誤解しているかもしれませんが、あなたは

javac /home/MyJavaFile.Java

これにより、MyJavaFile.class/homeが作成されます

その後、クラスパスに/homeを含めることで実行できます。例えば.

Java -cp /home MyJavaFile

別のディレクトリでクラスファイルを生成する場合は、javac-dオプションを使用できます。

37
mikej

使用 -dコマンドラインパラメータにjavacを指定して、コンパイル済みクラスファイルを保存するディレクトリを指定します。次に、プログラムを実行するには、このディレクトリをクラスパスに含めます。

javac -d some/directory myjavafile.Java
java -cp some/directory myjavafile
33
Michael