Comment puis-je compiler et exécuter une classe Java dans un répertoire différent?
J'écris un makefile qui compile un fichier .java
dans un répertoire différent, puis je veux l'exécuter, sans changer de répertoire. Je veux faire quelque chose dans le sens de:
$(SQM_JAVA_TOOL_DONE) : $(SQM_JAVA_TOOL)
$(shell cd /home_dir)
javac myjavafile.java
java myjavafile
Où le fichier Java est /home/myjavafile.java
, et le makefile ne s'exécute pas à partir de /home
.
Comment puis-je faire cela?
2 réponses
Je pourrais mal comprendre la question, mais vous pouvez compiler avec
javac /home/MyJavaFile.java
, Cela va créer MyJavaFile.class
dans /home
Vous pouvez ensuite l'exécuter en incluant /home
sur le classpath. par exemple
java -cp /home MyJavaFile
Si vous souhaitez générer le fichier de classe dans un répertoire différent, vous pouvez utiliser le -d
option javac
.
Utilisez le paramètre de ligne de commande -d
avec javac
pour lui indiquer dans quel répertoire vous souhaitez stocker les fichiers de classe compilés. Ensuite, pour exécuter le programme, il suffit d'inclure ce répertoire dans le classpath:
javac -d some/directory myjavafile.java
java -cp some/directory myjavafile