126 votes

Comment exécuter un java .class depuis la ligne de commande

J'ai une classe java compilée :

Echo.class

public class Echo {
    public static void main (String arg) {

            System.out.println(arg);
    }
}

Je cd dans l'annuaire et saisis : java Echo "hello"

Je reçois cette erreur :

C:\Documents and Settings\joe\My Documents\projects\Misc\bin>java Echo "hello"
Exception in thread "main" java.lang.NoClassDefFoundError: Echo
Caused by: java.lang.ClassNotFoundException: Echo
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Echo.  Program will exit.

Quelle est la façon la plus simple d'obtenir mon code Java sous une forme que je peux exécuter à partir de la ligne de commande comme si j'avais à utiliser Eclipse IDE ?

34voto

Kyralessa Points 76456

Avec Java 11, vous n'aurez plus à passer par cette rigmarole !

Au lieu de cela, vous pouvez faire ceci :

> java MyApp.java

Vous n'avez pas à compiler au préalable, car tout se fait en une seule étape.

Vous pouvez obtenir le Java 11 JDK ici : JDK 11 GA Release

18voto

Michael Borgwardt Points 181658

Vous devez spécifier le chemin de classe. Cela devrait le faire :

java -cp . Echo "hello"

Cela indique à java d'utiliser . (le répertoire courant) comme chemin de classe, c'est-à-dire l'endroit où il recherche les classes. Notez que lorsque vous utilisez des paquets, le chemin de classe doit contenir le répertoire racine, et non les sous-répertoires de paquets. Par exemple, si votre classe est my.package.Echo et que le fichier .class est bin/my/package/Echo.class, le bon répertoire de chemin de classe est bin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X