Ich habe von einem kleinen Projekt ein JAR File erstellt (mit Eclipse)
und dieses Programm braucht nun DB Zugriff (PostgreSQL).
Wenn ich es jedoch wie folgt starte:
java -classpath .:/home/hausi/jars/postgresql_jdbc/pg73jdbc3.jar -jar
test.jar
Dann startet zwar das Programm. Aber dort wo ich den Driver laden möchte
kommt es zu folgender Exception:
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at test.package.Test.main(Test.java:32)
Zeile 32 ist folgende:
Class.forName("org.postgresql.Driver");
Natürlich in try/catch clause eingeschlossen.
Bin für jeden Tipp sehr sehr dankbar.
Gruss,
Christian
Christian Hauser wrote:
> java -classpath .:/home/hausi/jars/postgresql_jdbc/pg73jdbc3.jar -jar
> test.jar
[...]
> java.lang.ClassNotFoundException: org.postgresql.Driver
Tooldoc zu 'java -jar':
| When you use this option, the JAR file is the source of all user
| classes, and other user class path settings are ignored.
Also entweder im Manifest den entsprechenden relativen Pfad zu weiteren
Jars angeben (siehe Tooldoc zu 'jar'), alles zusammen in ein Jar packen,
falls das keine Lizenzprobleme aufwirft, oder doch wieder mit 'java
-classpath <your jars> <mainclass>' aufrufen.
Viele Gruesse,
Patrick
Vielen Dank! Ich war derart überzeugt, dass das gehen muss, dass ich gar
nicht nachschlagen war.
Christian Hauser wrote:
>> Tooldoc zu 'java -jar':
>>
>> | When you use this option, the JAR file is the source of all user
>> | classes, and other user class path settings are ignored.
[...]
> Vielen Dank! Ich war derart überzeugt, dass das gehen muss, dass ich gar
> nicht nachschlagen war.
Die -jar-Option ist ja fuer das automatische Starten gedacht - z.B. per
Doppelklick im Windows-Explorer. Und da waere es toedlich, wenn das Jar
externe Abhaengigkeiten haette, die ihm explizit von aussen mitgeteilt
werden muessen.
Viele Gruesse,
Patrick