créer pot avec manifeste personnalisé avec plusieurs bibliothèques dans le classpath
Je suis en train de créer un jar de mon eclipse et afin d'être en mesure d'utiliser l'externe .des bocaux, je suis en utilisant ce manifeste avec plusieurs .les bocaux dans le classpath:
Manifest-Version: 1.0
Sealed: true
Main-Class: src.BatchTester
Class-Path: . P:/Tools/xstream/1.4.2/lib/kxml2-2.3.0.jar P:/Tools/xstream/1.4.2/lib/xstream-1.4.2.jar P:/Tools/StringTemplate/4.0.5/lib/antlr-3.3-complete.jar P:/Tools/StringTemplate/4.0.5/lib/ST-4.0.5.jar P:/Tools/Jdbc/lib/sqljdbc4.jar
Évidemment, si je ne mets pas les bibliothèques dans le classpath de l'erreur suivante s'affiche:
java.lang.NoClassDefFoundError: com/thoughtworks/xstream/XStream
Mais quand je les ai mis dans le classpath de la variation de l'erreur:
java.lang.NoClassDefFoundError: src/BatchTester
De sorte qu'il seemps qu'il ne peut pas trouvé ma classe principale. J'ai essayé avec plusieurs possibilités dans le classpath, comme l'ajout ou la suppression de .
au classpath, mais ne peut pas le faire fonctionner.
Aucune idée de comment puis-je résoudre ce problème???
Merci pour votre temps et effort,
PS: Après la création de la .jar au classpath dans le manifeste à l'intérieur ressemble à:
Class-Path: . P:/Tools/xstream/1.4.2/lib/kxml2-2.3.0.jar P:/Tools/xstr
eam/1.4.2/lib/xstream-1.4.2.jar P:/Tools/StringTemplate/4.0.5/lib/ant
lr-3.3-complete.jar P:/Tools/StringTemplate/4.0.5/lib/ST-4.0.5.jar P:
/Tools/Jdbc/lib/sqljdbc4.jar
avec de nouvelles lignes et des espaces, mais même après l'avoir modifié pour le "bon" format, j'ai eu les mêmes problèmes.
PS2: je sais qu'avec certains plugins comme Graisse-Jar, vous pouvez le faire fonctionner, mais je ne veux pas insérer plus de données que nécessaire dans mon .jar
Évidemment, ma classe il y a... Sinon je n'aurais pas l'autre erreur lorsque aucune classpath défini.
Ah, maintenant je vois votre problème. Que diriez -
Main-Class: BatchTester
et Class-Path: src P:/Too...
? Ou est votre BatchTester en fait dans un package "src" (ce qui serait étrange)?oui, mon BatchTester est dans le package " src " ... j'ai essayé votre solution, et même problème... 🙁
OriginalL'auteur magodiez | 2012-06-07
Vous devez vous connecter pour publier un commentaire.
Enfin j'ai copié tous les libs dans le /dossier lib et les ajouter dans la .pot avec une cible ant depuis semble être OK avec le gars (parce que c'est une petite application).
Ici est la fourmi(dans le cas est utile pour quelqu'un):
Si je pouvais +1 plus d'une fois je n'hésiterais pas à le faire.
OriginalL'auteur magodiez
Désolé Si mes questions semble évident pour vous.
*Commande De Lancement *
Afin d'exclure tout doute, n'avez-vous pas essayé de lancer votre bocal avec ce type de commande ?
Si vous utilisez classpath option, vous n'avez probablement pas ;). Option-classpath (ou pc) et -jar ne peut pas être utilise ensemble.
Préfèrent l'utilisation d'un chemin d'accès relatif, comme ./lib au lieu de P:/Tools/... Mais, de toute façon, ça ne pourra pas résoudre votre problème.
*Emplacement Du Package *
Comme brimborium dit, qu'est-ce que vous réel paquet ? src sons très étranges. Nous soupçonnons une erreur.
Dans votre BatchTester classe, qu'avez-vous écrit pour le package de la directive ? Rien (j'.e package par défaut qui isnot recommandé ?)?
Ne vous classe commencer (vous débarrasser de commentaires)
Dans ce cas, bien sûr, le src ne doit pas être oublié.
Ici un exemple de manifeste qui travaillent pour moi.
à la suite de l'exécution de la structure
Évidemment, je suis à l'aide de maven pour construire mon appli, mais l'idée principale est en.
OriginalL'auteur Jean-Rémy Revy
Le manifeste ne permet pas de chemins absolus dans le Class-Path: tag. Vous avez deux solutions:
Utiliser des chemins absolus via le fichier de protocole. Cela a été répondu d'ailleurs et il fonctionne absolue contre les chemins relatifs dans le bocal manifeste
De Chemin de classe: file:///P:/Tools/xstream/1.4.2/lib/kxml2-2.3.0.jar
En outre, vous ne devez pas modifier le manifeste.mf manuellement sans être conscient de plusieurs limites:
OriginalL'auteur Pedro