web-dev-qa-db-fra.com

Comment puis-je compiler et exécuter une classe Java dans un répertoire différent?

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?

29
vette982

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.

37
mikej

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
33
Michael