2010-09-26 14 views
0

Je veux exécuter un programme Java en utilisant un script shell. Le programme java est dans le répertoire p2 et son nom est maxconnect4 et je l'ai déjà compilé, le nom de la classe est maxconnect4. J'écris les commandes shell comme ceci:exécuter un programme Java

java p2/maxconnect4 arg1 arg2 arg3

Cette commande shell ne fonctionne pas. Il donne une erreur: Exception dans le thread "principal" java.lang.NoClassDefFoundError: p2/MaxConnect

Cependant, je compile le programme java ainsi:.

javac p2/* java, et il fonctionne .

+1

Pouvez-vous expliquer comment cela ne fonctionne pas? Quels messages d'erreur obtenez-vous? – highlycaffeinated

+0

L'erreur est: Exception dans le thread "principal" java.lang.NoClassDefFoundError: p2/maxconnect4/class – Fihop

Répondre

1

Utilisez simplement java -cp p2 maxconnect4 arg1 arg2 arg3. -cp définit le chemin de classe de la JVM. Edit: Je suppose que vous n'utilisez pas un paquet pour maxconnect4.

2

En supposant que la classe a déclaré package p2;, cela devrait fonctionner - bien que la méthode la plus standard consiste à utiliser des points à la place des barres obliques dans le nom de classe entièrement qualifié - java p2.maxconnect.

Si la classe n'a pas de déclaration de package, essayez java -cp p2 maxconnect. Vous devez spécifier un chemin de classe tel que le fichier de classe se trouve au niveau supérieur.

Si la classe possède une autre déclaration de package, vous devez la placer dans un dossier correspondant à son package.

+0

Merci, cela fonctionne. – Fihop

1

Essayez avec

java p2.maxconnect4 arg1 arg2 arg3 

En outre, vous pouvez essayer de vérifier le nom de la classe, et vérifier si le fichier p2/maxconnect4.class existe.