Question

J'ai construit un fichier JAR et il s'exécute bien sur mon PC (XP) qui a installé Eclipse. Il fonctionne également sur un autre PC, qui a également Eclipse.

J'ai essayé de l'exécuter sur un autre PC (XP) qui n'a pas d'éclipse. Bien qu'il contient le JDK et le multiple JRE. Le fichier JAR ne s'exécute tout simplement pas en cliquant ou dans l'invite de commande.

Je ne suis pas entièrement sûr, mais ma meilleure supposition est que les variables d'environnement ne sont pas définies correctement. Voici l'erreur que je reçois de l'invite de commande:

Exception in thread "main" java.lang.NoClassDefFoundError: ...

Toute aide serait appréciée.

Était-ce utile?

La solution

C'est probablement un problème de chemin de classe comme d'autres l'ont dit.

Une chose à noter est la façon dont votre pot est construit. Vous disposez d'un certain nombre d'options dans la boîte de dialogue pour exporter un pot Runnable;

  • Extraire les cours dans le pot
  • Zip dépendances dans le jar - Crée Jar-in-Jar-chargeher.jar à l'intérieur du pot.
  • Placer les pots dans un sous-répertoire à côté du pot.

Selon ce que vous avez choisi pour cela dépend de la façon dont le pot se comportera. Si les classes sont extraites, les classes dépendantes non dans le JDK doivent être sur le chemin de classe. Je recommanderais cette ligne de conduite car elle est plus simple.

Maintenant, la question est - utilisez-vous une dépendance à votre chemin de classe et non dans les dépendances de construction du projet Eclipse? Si c'est le cas, il ne sera pas rempli de / zippé / mis à côté du pot car Eclipse ne le sait pas (mais Java le trouvera toujours sur votre système car il est sur le chemin de classe). De plus, si vous avez enregistré un script ANT et mis à jour le chemin de construction dans Eclipse, Eclipse ne metra pas à jour ce script ANT - qui est généré une seule fois.

Autres conseils

Ce doit être un problème de chemin de classe.

Le StackTrace doit également dire quelle classe il n'a pas trouvé. Une fois que vous avez cela, trouvez quel pot a cette classe. Ensuite, ajoutez ce fichier JAR à votre ClassPath ou ajoutez-le à la variable Env ClassPath.

Les variables d'environnement ne sont pas prises en compte lors de l'invocation d'un fichier JAR lors de la cliquetis dessus (équivalent à l'exécution de javaw -jar your.jar).

Je suis à peu près sûr que cela ne fonctionne pas non plus sur votre premier PC en dehors d'Eclipse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top