Java Manifeste.mf classpath questions
J'ai essayé d'exécuter un fichier jar - appelons-la test.jar - qui utilise le Sybase jconn3.jar sur un système Unix.
J'ai créé un MANIFESTE.MF fichier est la suivante:
Class-Path: $SYBASE/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar
Cela donne un ClassNotFoundError. $SYBASE est le système variable qui pointe vers /opt/sybase13; j'ai aussi essayé le suivant:
Class-Path: /opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar
et
Class-Path: opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar
Cependant, si je copie le jconn3.jar fichier à partir de l' $SYBASE/jConnect-6_0/classes dans le même répertoire que test.jar et mise à jour de mon MANIFESTE.MF pour lire comme suit:
Class-Path: jconn3.jar commons-net-1.3.0.jar
L'application s'exécute comme prévu.
Maintenant, j'ai été en mesure de vérifier l'jconn3.jar fichier fonctionne en copiant localement; mon MANIFESTE.MF fichier contient le chemin d'accès à mon Principal-Classe, ce qui n'est pas en cause ici.
Que pensez-vous pourrait être le problème? J'ai regardé cette chose depuis trop longtemps maintenant.
Merci!
Pourquoi ne pas simplement ajouter le bocal pour le script de démarrage de l'application. La plupart des serveurs d'application ont une partie spéciale où mettre ces pots.
OriginalL'auteur | 2008-12-01
Vous devez vous connecter pour publier un commentaire.
Les entrées dans le chemin de classe sont soit par rapport à la JARRE dans laquelle ils sont intégrés (que vous avez de travail) ou sont des Url. Pour faire de vos chemins d'accès absolus de travail, vous aurez besoin de les convertir vers des URLs, par exemple,
file:/opt/sybase13/...
Il n'y a pas de mécanisme pour l'utilisation des variables.
Bien que le POT de spécification de ne pas le dire clairement, absolue
file:
schéma d'Url dans le chemin de classe de l'attribut.Nick: Si vous le pouvez, essayez d'utiliser des liens symboliques. Thnks à erickson. Fonctionne très bien, bien que j'ai l'habitude d'utiliser trois barres obliques ("fichier:///opt/sybase) car sinon les "hôtes" la partie est manquante et quelques outils en ont besoin.
"Pour faire vos chemins d'accès absolus de travail" - Ne fait que continuer à travailler avec Java 8? Je ne peux pas obtenir de chemins d'accès absolus de travail, avec ou sans "file://" préfixe.
L'utilisation d'un ou de trois barres obliques. Deux barres obliques n'est pas valide.
J'ai essayé
file:///opt/...
ou/opt/...
, ni travaillé. Je voulais direfile://
comme préfixe pour les remplir de chemin d'accès absolu, donc 3 barres obliques au total.OriginalL'auteur erickson
Les variables d'environnement ne sont pas lus par le chargeur de classe autant que je sache. Cependant, vous pouvez ajouter le pot dans un script de configuration
Accoding à la spécification des entrées sont des parents dans le pot n'est pas absolue:
http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html #Manifeste Spécification
OriginalL'auteur OscarRyz