J'écris un makefile qui compile un .Java
fichier 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 depuis /home
.
Comment puis-je faire ceci?
Je peux 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 chemin de classe. 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 pour javac
.
Utilisez le -d
paramètre de ligne de commande avec javac
pour lui indiquer dans quel répertoire vous souhaitez stocker les fichiers de classe compilés. Ensuite, pour exécuter le programme, incluez simplement ce répertoire dans le chemin de classe:
javac -d some/directory myjavafile.Java
java -cp some/directory myjavafile