Jar -> Manifest -> Class-Path -> relativ?
Stefano Albrecht
- java
Gruß an alle Forumsteilhabenden :~)
Die Lehrbücher lehren, dass die Class-Path-Angabe in der MANIFEST-Datei eines Java-Archivs relativ zum Archiv sind. Hier stoße ich auf ein Problem:
Die Main-Class-Angabe ist bei mir relativ, wie es auch sein sollte, bei der Class-Path-Angabe sucht er zwar relativ, jedoch nicht zum Archiv, sondern zum übergeordnetem Ordner des Archivs, bei mir also der Windows-Desktop.
MANIFEST-Datei:
Manifest-Version: 1.0
Class-Path: lib/mysql-connector-java-3.1.12-bin.jar
Main-Class: mmogserver/MMOG_Server
[NEWLINE]
Bei Start des Archivs findet er zwar die Mainclass, jedoch nicht lib/mysql-connector-java-3.1.12-bin.jar (oder besser com.mysql.jdbc.Driver). Wenn auf dem Desktop ein Ordner namens "lib" mit der Datei "mysql-connector-java-3.1.12-bin.jar" vorhanden ist, findet er sie (ich spreche von der ClassNotFoundException: com.mysql.jdbc.Driver).
Ich arbeite mit Eclipse unter Windows XP Sp2, und innerhalb des IDE läuft alles. Auch ein Ändern der Angabenreihenfolge innerhalb der Manifest-Datei ändert nichts (was man ja bekanntlich versuchen sollte).
Habt vielen Dank! :~)
Mit freundlichen Grüßen
Stefano Albrecht
Hallo,
Die Lehrbücher lehren, dass die Class-Path-Angabe in der MANIFEST-Datei eines Java-Archivs relativ zum Archiv sind.
Ja? http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html -> Note
Sie sind relativ zum Speicherort des JAR-Files, verweisen aber ins lokale Dateisystem, nicht ins Archiv.
Wenn auf dem Desktop ein Ordner namens "lib" mit der Datei "mysql-connector-java-3.1.12-bin.jar" vorhanden ist, findet er sie (ich spreche von der ClassNotFoundException: com.mysql.jdbc.Driver).
Ja.
Zitat aus dem Link oben:
To load classes in JAR files within a JAR file into the class path, you must write custom code to load those classes.
Hierfür gibt es http://one-jar.sourceforge.net/.
viele Grüße
Axel