Exécuter Fichier de classe Java à partir de la ligne de commande, la syntaxe est la suivante :
java -classpath /path/to/jars <packageName>.<MainClassName>
où le nom du paquet (qui commence généralement par com
o org
) est le nom du dossier dans lequel se trouve votre fichier de classe.
Par exemple, si le nom de votre classe principale est App et que Nom du paquet Java de votre application est com.foo.app
alors votre fichier de classe doit se trouver dans com/foo/app
(un dossier séparé pour chaque point), de sorte que vous exécutez votre application en tant que :
$ java com.foo.app.App
Nota: $
est une invite de l'interpréteur de commandes, ignorez-la lorsque vous tapez
Si votre classe n'a pas de package
défini, il suffit de l'exécuter en tant que : java App
.
Si vous avez d'autres dépendances, assurez-vous d'avoir spécifié votre chemin d'accès soit avec -cp
/ -classpath
ou en utilisant CLASSPATH
qui pointe vers le dossier contenant votre bocal / guerre / oreille / fermeture éclair / classe fichiers. Ainsi, sous Linux, vous pouvez préfixer la commande par : CLASSPATH=/path/to/jars
Sous Windows, vous devez ajouter le dossier à la variable système. S'il n'est pas défini, le chemin de la classe utilisateur est constitué du répertoire courant ( .
).
Exemple pratique
Étant donné que nous avons créé un projet d'exemple en utilisant Maven comme :
$ mvn archetype:generate -DgroupId=com.foo.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
et nous avons compilé notre projet en mvn compile
dans notre my-app/
il générera notre fichier de classe dans le répertoire target/classes/com/foo/app/App.class
.
Pour l'exécuter, nous pouvons soit spécifier le chemin de la classe via -cp
ou d'y accéder directement, voir les exemples ci-dessous :
$ find . -name "*.class"
./target/classes/com/foo/app/App.class
$ CLASSPATH=target/classes/ java com.foo.app.App
Hello World!
$ java -cp target/classes com.foo.app.App
Hello World!
$ java -classpath .:/path/to/other-jars:target/classes com.foo.app.App
Hello World!
$ cd target/classes && java com.foo.app.App
Hello World!
Pour vérifier le nom de votre classe et de votre paquetage, vous pouvez utiliser l'outil de désassemblage des fichiers de classe Java, par exemple :
$ javap target/classes/com/foo/app/App.class
Compiled from "App.java"
public class com.foo.app.App {
public com.foo.app.App();
public static void main(java.lang.String[]);
}
Nota: javap
ne fonctionnera pas si le fichier compilé a été obscurci.