.pot d'erreur - impossible de trouver ou charger la classe principale

J'ai essayé de mettre HelloWorld dans un .jar fichier et de l'exécuter, mais il ne fonctionne pas. J'ai créé le fichier java et tapé dans le programme, puis écrit dans le cmd:

javac HelloWorld.java
java HelloWorld

et cela a fonctionné. Ensuite, je suis entré

echo Main-Class: HelloWorld >manifest.txt
jar cvfm HelloWorld.jar manifest.txt HelloWorld.class

et a la sortie

added manifest
adding: HelloWorld.class(in = 426) (out= 288)(deflated 32%)

J'ai ensuite entré

java -jar HelloWorld.jar
HelloWorld.jar

et la première ligne travaillée, tandis que la deuxième ligne m'a donné une erreur:

Error: Could not find or load main class path\HelloWorld.jar

qui est le même résultat que j'ai obtenu (dans un rapidement la fermeture de la fenêtre) quand j'ai essayé de l'ouvrir avec le java.exe fichier en 64 bits jre7\bin, jdk1.7.0_51\bin, jdk1.7.0_51\jre\bin, ainsi que 32 bits jre7\bin. Je l'ai désinstallé et réinstallé mon jre et jdk et recréé mon .classe et .les fichiers jar, mais le problème persiste. Je suis sur win8.

Edit: j'ai essayé de faire comme aetheria suggéré, mais pas de chance. J'ai mis HelloWorld.java en chemin\com\stackoverflow\utilisateur\blrp compilé, et il a travaillé en entrant

java com.stackoverflow.user.blrp.HelloWorld

en chemin. Ensuite, j'ai créé le manifeste et le bocal par:

(echo Manifest-Version: 1.0
echo Class-Path: .
echo Main-Class: com.stackoverflow.user.blrp.HelloWorld) >manifest.txt
jar cvfm HelloWorld.jar manifest.txt com\stackoverflow\user\blrp\HelloWorld.class

et a la sortie

added manifest
adding: com/stackoverflow/user/blrp/HelloWorld.class(in = 454) (out= 312)(deflat
ed 31%)

mais encore, java-jar HelloWorld.jar travaillé et HelloWorld.jar n'a pas (même erreur). J'ai aussi essayé de ne pas faire le paquet de chose, juste le Chemin de Classe dans le manifeste, même résultat.

(Aussi, j'ai résolu le problème avant de poser la question par l'utilisation d'un .le fichier bat, mais il faudrait toujours être doux pour obtenir que le bocal de travail.)

  • le manifeste doit être mis en forme comme /META-INF/MANIFEST.MF décompresser n'importe quel fichier jar pour voir l'exemple de l'e.g jre/lib/rt.jar
  • imprimer ligne vide à la fin de manifester, cela devrait fonctionner.
  • echo crée le vide de la ligne automatiquement (sans la ligne vide, java-jar ne fonctionne pas non plus), et de manifester est emballé correctement quand le bocal est créé.
  • J'ai essayé votre "echo" et ça marche pour moi avec "java-jar HelloWorld.jar". Vous pouvez modifier vous de registre de windows à utiliser la même commande pour ouvrir jar wile, mais normalement windows utiliser "javaw dans -jar HelloWorld.jar" commande pour ouvrir le bocal. javaw dans le lanceur est utilisé pour des applications avec interface graphique sans console.
InformationsquelleAutor Blrp | 2014-02-08