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?

28
demandé sur Paŭlo Ebermann 2010-08-05 18:10:42

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.

36
répondu mikej 2010-08-05 15:49:50

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
32
répondu Michael 2010-08-05 15:59:11