Nur um Missverständnisse zu vermeiden:
i586 ist eine 32Bit-Prozessorarchitektur, die seit 1993 auf Intel- und wenig später auch auf AMD-CPUs verbaut wird, siehe
https://secure.wikimedia.org/wikipedia/en/wiki/I586
amd64 ist eine 64Bit-Prozessorarchitektur, die seit 2000 auf AMD-CPUs und wenig später unter dem Namen x86-64 auf Intel-CPUs verbaut wird, siehe
https://secure.wikimedia.org/wikipedia/en/wiki/X86-64
amd64 setzt auf i586 auf, 32Bit-Betriebssysteme auf diesen Prozessoren nutzen i586, 64Bit-Betriebssysteme nutzen amd64 und i586. Auch wenn die Namen das andeuten, sind beide Architekturen jeweils auf allen handelsüblichen Intel- und AMD-CPUs verbaut.
// EDIT:
Zu dem Code-Block mit den Parametern für java: Das war nun mal in meinem Fall so, weil ich dein Programm in /opt/dist/... liegen habe.
Dein Code läuft leider noch nicht, Fehlermeldung diesmal:
Code:
java -Djava.library.path=./lib/native -jar "3D Animation.jar"
Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/dist/lib/native/libj3dcore-ogl.so: /opt/dist/lib/native/libj3dcore-ogl.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1675)
at java.lang.Runtime.loadLibrary0(Runtime.java:840)
at java.lang.System.loadLibrary(System.java:1047)
at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:180)
at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:137)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:948)
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:280)
at animation.MyUniverseContent.main(MyUniverseContent.java:15)
Grund ist: wrong ELF class: ELFCLASS32
ELF ist eine Abkürzung für das Format der ausführbaren Dateien/Bibliotheken (auf Unix-basierten Systemen), vergleichbar mit DLL (Windoof). Dein Programm versucht, die Bibliothek für 32Bit-Systeme (also i586-Architektur) zu starten, aber ich habe ein 64Bit-Betriebssystem.
Wenn ich die 64Bit-Bibliothek von Java3D herunterlade und in /dist/lib/native kopiere (die 32Bit-Bibliothek ersetze), dann startet dein Programm wie gewünscht.