Cannot load 32-bit SWT libraries on 64-bit JVM
Mein Rechner ist win7 64 bit und jdk ist 1.7.0.21,jvm 1.6.. und 64 bit
Ich möchte laufen SWT-Anwendung und der export als runnable jar-Datei. Wenn ich die Anwendung ausführen, es ist die Ausnahme, Nicht load 32-bit SWT libraries on 64-bit JVM, so dass ich den import der SDK als Alternative jre wie Sie Punkt, an Kann nicht laden Sie die 64-bit SWT libraries on 32-bit-JVM ( ersetzt SWT-Datei ), und in Eclipse ist, kann die Anwendung korrekt ausgeführt, aber wenn ich Bearbeiten Sie die bat-Datei zum ausführen der jar-Datei, es hat immer das problem, wie kann Nicht load 32-bit SWT libraries on 64-bit JVM habe ich die swt.jar für 64 bit, aber ich don ' T konw how zu ersetzen, und ich will, Bearbeiten Sie die bat-Datei mit den Informationen, die mit dem SDK. Wie man das problem umgehen?
- Bitte bereinigen Sie Ihre Formatierung.
- Ein 32-bit-shared-library können nur geladen werden, indem ein 32-bit-Anwendung. Dies ist eine Einschränkung des Betriebssystems und können Sie nicht ändern. Wenn Sie eine 32-bit-DLL, Sie können nur laden Sie diese in 32-bit-JVM, Wenn Sie eine 64-bit-DLL, Sie können nur laden Sie diese mit einem 64-bit-JVM. Das wäre das gleiche, wenn Sie in C oder C++ etc. Es ist nicht etwas, was man einfach umgehen und auch in Linux-und Solaris, die gleiche Einschränkung gilt für.
- tut mir Leid, dass ,können Sie sagen, Ausführlicher ,weil ich nicht haben eine Tiefe Bildung der JVM oder swt mechnism
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du eine 64bit JVM, so dass es nicht die 32-bit SWT libraries. Sie müssen entweder:
Diese Vorherige Frage ALSO hat Sie eine gute Beschreibung der ersten option mit begleitenden Diagramme:
64-bit-JVM ?
sollten Sie die 64-bit swt
Abgesehen von den entsprechenden swt lib entsprechend dem Betriebssystem und deren Bitanzahl, manchmal betrachten Sie auch die folgende:
Meine Umgebung:
32-bit-Ubuntu
32-bit-JVM/JRE
Eclipse läuft, das 32-bit-JRE
32-bit-Gtk, SWT,
Ansatz 1:
Ich Stand vor dem problem, wenn ich ersetzen Sie die 32-bit swt mit 64-bit swt testen auf anderen Plattformen. Um dies zu beheben, musste ich entfernen/reinigen Sie das Projekt und erstellen Sie das Projekt neu mit der 64-bit swt. Aber dieser Schritt logisch keinen Sinn machen, funktioniert immer noch.
Ansatz 2:
Alle meine swt-libs für jedes O/S den gleichen Namen hatten- "swt.jar" wohnen in verschiedenen Ordnern. Ich nur geändert, um die entsprechenden lib bei der Prüfung, D. H., 32-und 64-bit o/s hat swt.jar. Das war jetzt irgendwie was zu einigen problem. Noch nicht in der Lage, zu identifizieren. Aber auf den Namen zu ändern, um etwas anderes für jeden der swt lib-Dateien, habe es gelöst. Auch dieser Schritt macht nicht viel Sinn.
Ansatz 3:
Ich arbeite mit Hilfe von geotools-api-version 10.5, die auch ein swt-Bibliothek in den Ordner bin. Ich hatte, um es zu entfernen aus dem Ordner entfernen (in anderes Verzeichnis) und nun ist mein app läuft glatt!!
Hatte ich ein ähnliches Problem. Die Installation von 32-bit-jvm auf eine 64-bit Maschine das Problem gelöst.
Meine dificult, um die Arbeit mit SWT ist die Verteilung. Es erfordert eine installation bei jedem SO (Windows, Linux | 32, 64), Swing nicht haben dieses problem und ist cool, aber ich bevorzuge SWT/JFace.
Um dieses problem zu lösen erstelle ich ein Ant-script zip-jede Anlage mit seinem rechtmäßigen swt jar.
Bekomme ich die bestimmten swt-jars in:
http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/index.php#SWT