Référence pots à l'intérieur d'un bocal
J'ai un pot dont le contenu ressemble comme indiqué ci-dessous,
Ci-dessous mon fichier de manifeste
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.7.0_06-b24 (Oracle Corporation)
Main-Class: org.sai.com.DerbyDemo
Class-Path: derby.jar derbyclient.jar derbynet.jar derbytools.jar
Lorsque j'essaie d'exécuter le pot, il a jeté un ClassNotFoundExcception
le sens qu'il n'est pas de référencement, les pots à l'intérieur de l'extérieur du pot.
Dans le Class-Path
attribut, comment puis-je référence les pots (derby.jar
, etc) à l'intérieur de la réelle pot?
- double possible de Classpath y compris le POT dans un POT
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'une classe personnalisée chargeur pour cela, avoir un oeil à Un Pot.
Il a une tâche ant qui peut simplifier la construction de celui-ci.
RÉFÉRENCE (à partir de arrière-plan)
Vous ne pouvez pas. À partir de la tutoriel officiel:
Dans Eclipse, vous avez l'option d'exportation exécutable jar.
Vous avez une option pour emballer tous liés au projet les pots en jar généré et de cette façon eclipse ajouter des class loader qui va se référer à vous intégré les pots dans le nouveau pot.
Des implémentations par défaut du chargeur de classe ne peut pas charger à partir d'un pot-dans-un-pot: pour ce faire, l'ensemble de "sous-jar" devrait être chargé dans la mémoire, qui va à l'encontre de l'accès aléatoire avantages de la jar format (référence en attendant je vais faire un edit une fois-je trouver de la documentation à l'appui de cette).
Je recommande d'utiliser un programme tel que JarSplice de regrouper tout pour vous en un seul propre exécutable jar.
Edit: ne Pouvais pas trouver la source de référence, mais voici une liste non-résolu RFE off le site web de Sun décrivant exacte de ce "problème": http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4648386
Aussi, vous pouvez "tester" que votre programme fonctionne en plaçant la bibliothèque des fichiers jar dans un
\lib
sous-répertoire de votreclasses
répertoire, puis en exécutant la ligne de commande. En d'autres termes, avec la structure de répertoire suivante:À partir de la ligne de commande, accédez à l'mentionnés ci-dessus des "classes" de répertoire, et le type:
Ajouter les fichiers jar de votre de la bibliothèque(si utilisation de l'edi netbeans) et modifier votre manifeste du fichier
classpath
comme suit:une réponse similaire existe ici
dans eclipse, cliquez-droit sur le projet, sélectionnez RunAs -> Exécuter la Configuration et enregistrer votre configuration d'exécution, ce sera utilisé lors de la prochaine exportation Exécutable Pots