Как я могу скомпилировать и запустить класс Java в другом каталоге? - PullRequest
29 голосов
/ 05 августа 2010

Я пишу make-файл, который компилирует файл .java в другой каталог, и затем я хочу запустить его, не меняя каталоги. Я хочу сделать что-то вроде:

$(SQM_JAVA_TOOL_DONE) : $(SQM_JAVA_TOOL)
        $(shell cd /home_dir)
        javac myjavafile.java
        java myjavafile

, где файл Java /home/myjavafile.java, а make-файл не запускается с /home.

Как я могу это сделать?

Ответы [ 2 ]

37 голосов
/ 05 августа 2010

Возможно, я неправильно понял вопрос, но вы можете скомпилировать с

javac /home/MyJavaFile.java

Это создаст MyJavaFile.class в /home

Затем вы можете запустить его, включив /home в путь к классам. например,

java -cp /home MyJavaFile

Если вы хотите сгенерировать файл класса в другом каталоге, вы можете использовать опцию -d для javac.

33 голосов
/ 05 августа 2010

Используйте параметр командной строки -d с javac, чтобы указать, в каком каталоге вы хотите хранить скомпилированные файлы классов. Затем, чтобы запустить программу, просто включите этот каталог в classpath:

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