Woher die swt-pi.jar nehmen? (UnsatisfiedLinkError)

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

habe hier sämtliche Beiträge durch, Googeln wie und wo man die ominöse sch**ss swt-pi.jar finden kann hat mich beinahe in den Wahnsinn getrieben. Soviel unnützen Müll habe ich glaube ich noch nie im Netz gefunden als ich etwas gesucht habe...


Also:

1. SWT Programm - läuft aus Eclipse heraus (run as...), sitzt wackelt und hat Luft
2. swt.jar über build path->librarys->add eingebunden - passt
3. das ganze als jar exportiert
4. jar geöffnet, manifest.mf wie folgt bearbeitet

Manifest-Version: 1.0

Main-Class: AppMain
Class-Path: lib/swt.jar

Sealed: true

dass die swt.jar im ordner lib liegt ist selbstverständlich.

5. versuch zu starten über bash:


java -Djava.library.path=/mydir/lib -jar myapp.jar

liefert Fehler:

Exception in thread "main" java.lang.UnsatisfiedLinkError: libswt-pi-gtk-3236: libswt-pi-gtk-3236.so:
cannot open shared object file: No such file or directory
...
...

6. gegoogelt, vermutung: swt-pi.jar fehlt
7. dämlich gesucht, weder auf rechner, noch irgendwo zum download swt-pi.jar gefunden, nicht mal einen tip woher man die nehmen soll
8. aus reiner verzweiflung irgendwann hinzugefügt

Class-Path: lib/swt.jar lib/swt-pi.jar

liefert natürlich immernoch Fehler:

Exception in thread "main" java.lang.UnsatisfiedLinkError: libswt-pi-gtk-3236: libswt-pi-gtk-3236.so:
cannot open shared object file: No such file or directory


Woher bekomme ich das File? Das kann doch einfach nicht wahr sein. Bitte verschont mich diesmal mit Swing/SWT Kommentaren, ich hasse SWT mittlerweile so dermaßen und habs kapiert. Ich will nur das Projekt abschliessen und in den Urlaub. Nie wieder SWT. Bitte inständig um Hilfe!!!

Danke dem der mich vor dem Gehirnkrebs bewahren kann schonmal vorab ;-)

---
Ach ja, mein System:
OS: fedora 6, java version "1.4.2" gij (GNU libgcj) version 4.1.1 20070105 (Red Hat 4.1.1-51), Eclipse 3.2.2
 
R

Roar

Gast
swt is zwar bissl asozial das stimmt aber ich würd das nicht behaupten wenn man es nicht mal richtig eingerichtet bekommt ... :autsch: halt
wenn du deine fehlermeldung liest siehst du auch dass du keine swt-pi.jar brauchst (woher hast du das? kein wunder dass du dann bei google nur mist findest) sondern eine
fehlermeldung hat gesagt.:
libswt-pi-gtk-3236.so

ps:
java version "1.4.2" gij (GNU libgcj)
besorch dir doch mal ne richtige (und neue) java version :)
 

byte

Top Contributor
der pfad zu den nativen libs ist nicht richtig gesetzt und/oder du hast nicht die richtigen dateien in dem verzeichnis.
 
G

Guest

Gast
hmm, wie setz ich den pfad zu den nativen libs, bzw. wo sind die zu finden? Meinst du damit das SWT Projekt das ich in meinen Workspace importieren musste? Oder sind sie irgendwo unter eclipse/plugins zu finden? Oder sollten die native libs normal unter usr/local irgendwo liegen? Ich persönlich habe eclipse nie richtig installiert auf dem system, da ich leider keine root rechte habe(deshalb kann ich auch . Ich hae irgendwann festgestellt das es sich auch "einfach so" starten lässt. Was bis jetzt auch prima funktioniert hat.

Beim googeln hab ich immer wieder gelesen ds "libswt-pi-gtk-3236.so" in swt-pi.jar enthalten sein soll. Sämtliche Anleitungen die ich gefunden habr zu "SWT in jar exportieren" beschreiben zudem auch das die swt-pi.jar als Library in das Projekt eingebunden werden muss. Leider jedoch nie wo die zu finden sein soll, sonst könnte man darauf schliessen ob das noch aktuell ist (ich vermute nämlich nicht). Kennt irgendwer eine Anleitung die mit dem neuesten SWT + aktuellem Eclipse kompatibel ist?


Grüße aus Mü.
Tom
 

byte

Top Contributor
Geh auf www.eclipse.org/swt und lade Dir SWT runter. Die Windows-Version enthält verschiedene .DLL-Dateien, die Linux Version .SO-Dateien. Diese Dateien müssen im Systempfad liegen, den Du z.B. so beim Starten der Anwendung setzen kannst:

Code:
-Djava.library.path=lib

In diesem Fall müssten die nativen Dateien im Verzeichnis lib relativ vom Jar liegen, das ausgeführt wird. Natürlich muss zusätzlich dazu auch noch der Classpath gesetzt werden. Welche Jars von SWT Du da benötigst, das kommt drauf an, was Du alles aus der SWT-API verwendest. Zur Not muss man sich da die nötigen Jar-Dateien aus dem Plugin-Verzeichnis von Eclipse besorgen.


hmm, wie setz ich den pfad zu den nativen libs, bzw. wo sind die zu finden? Meinst du damit das SWT Projekt das ich in meinen Workspace importieren musste? Oder sind sie irgendwo unter eclipse/plugins zu finden? Oder sollten die native libs normal unter usr/local irgendwo liegen? Ich persönlich habe eclipse nie richtig installiert auf dem system, da ich leider keine root rechte habe(deshalb kann ich auch . Ich hae irgendwann festgestellt das es sich auch "einfach so" starten lässt. Was bis jetzt auch prima funktioniert hat.

Eclipse wird auch nicht installiert, sondern einfach entpackt und gestartet. Eclipse ist eine Java-Anwendung und interessiert sich herzlich wenig für Registry und Konsorten.
 

pocketom

Bekanntes Mitglied
Alles kalr, danke. Hat funktioniert. SWT lag natürlich schon die ganze Zeit auf der Platte rum. Habe ja auch schon länger damit gearbeitet. Alles in allem leider nicht so komfortabel gelöst mit den JARs + SWT. Das könnte der JAR Exporter finde ich auch gleich selbst hinbekommen. Naja, es läuft... THX!
 

pocketom

Bekanntes Mitglied
Hi,

so ganz alufen tut das leider doch noch nicht. Es läuft nur auf der Kiste an der ich es entwickelt habe. Auf einem anderen Linux Rechnern bekomme Fehlermeldungen. Ich vermute das es an den unterschiedlichen Java Versionen liegt.

Auf dem Rechner auf dem ich es entwickelt habe ist instaliert:
java version "1.4.2" gij (GNU libgcj)
version 4.1.1 20070105 (Red Hat 4.1.1-51), Eclipse 3.2.2



Auf diesem Rechner wo es nicht hinhaut ist folgende Java version isntalliert:
java version "1.4.2"
gcj (GCC) 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)

Fehler:

user1@linux1 gsFLX_SFF_Handler_v1.3]$ java -Djava.library.path=lib -jar myApp.jar


Warning: -jar not understood. Ignoring.
Exception in thread "main" java.lang.NoClassDefFoundError: myApp.jar
at gnu.gcj.runtime.FirstThread.run() (/usr/lib/libgcj.so.5.0.0)
at _Jv_ThreadRun(java.lang.Thread) (/usr/lib/libgcj.so.5.0.0)
at _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) (/usr/lib/libgcj.so.5.0.0)
at __gcj_personality_v0 (/home/gde12linux/Desktop/myApp/java.version=1.4.2)
at __libc_start_main (/lib/tls/libc-2.3.4.so)
at _Jv_RegisterClasses (/home/gde12linux/Desktop/myApp/java.version=1.4.2)



Er kann mit java -jar nichtmal was anfangen... :autsch:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben