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!

Je suppose que ce POT contient votre pilote de base de données; il est assez commun pour une application pour créer ses propres java.net.URLClassLoader pour ramasser pilote de classes dans une classe spécifiée par le biais de certains de configuration de l'application.
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