Da sich hier nichts mehr tut, eine kleine Ergänzung zur "sauberen" Methode.
Installiert man java3d über den Paketmanager, dann funktioniert der Aufruf
Code:
java -jar /Pfad/zur/Datei/STRender_Demo.jar
nicht, und das ist _kein_ Fehler des Pakets.
Zunächst dachte ich das, und wollte symlinks von /usr/share/java/java3d/*.jar auf das entsprechende Verzeichnis für die aktuell per /etc/alternatives aktivierte JVM setzen, dies ist jedoch _falsch_, wie mir der Maintainer des java3d-RPMs auf Nachfrage erklärte.
Ich zitiere das mal hier (Hervorhebungen von mir):

Zitat von
Toni Graffy Paketbasierte System wie SuSE folgen hier dem jpackage Standard. D.h.
Programme werden nie via java -jar ... gestartet, im Gegenteil es darf im
Manifest gar kein Classpath drin stehen (rpmlint schreit sonst
fürchterlich ..)
d.h. du musst dein Programm anders aufrufen:
java \
-Djava.library.path=/usr/lib \
-cp `build-classpath java3d`:<dein jar file> \
<name der Main-Klasse>
da die java3d libraries in einem Standard-Pfad stehen braucht man
das -Djava.library.path= ... hier nicht
Das Macro build-classpath ist Bestandteil der jpackage-utils und sollte also
bei ordentlicher java Installation bereits installiert sein. Siehe auch "man
build-classpath".
Den Namen der Main-Class kannst du aus dem Manifest deinen jar-files
entnehmen.
Oder in Kurzfassung:
Code:
java -cp `build-classpath java3d`:/Pfad/zum/jarfile/STRender_Demo.jar Strender.Launcher
Die "Main-Class" findet man im STRender_Demo.jar, wenn man es z.B. mit mc oder Konqui "öffnet", es wird wie ein zip-File behandelt (und ist wohl auch eines, dazu muss natürlich "unzip" installiert sein) in der Datei "MANIFEST.MF" im Unterverzeichnis "META_INF".
Anmerkung:
Mit "ordentlicher Java Installation" ist _natürlich_ Installation über den Paketmanager gemeint, hier wird dann auch -falls noch nicht vorhanden- besagtes "jpackage-utils"-Paket automatisch mit installiert.
Greetz,
RM
Lesezeichen