Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : SWT will unter Windows gtk-lib?



kip
31-08-2004, 08:00
hi!

ich habe gestern angefangen mich mit SWT zu beschäftigen. Ich entwickle mit Eclipse unter Linux, klappt auch wunderbar - erstes Mini Porgramm läuft.

Jetzt wollte ich das ganze mal unter Win testen und hab mir ein Archiv gepackt mit den entsprechenden Windows-DLLs, meinem Programm als jar-Archiv, der swt.jar und ner kleinen Batch zum starten.

Batch sieht so aus:

start /B java -Djava.library.path=lib\win32 -jar amacat.jar

In lib\win32 liegen die swt-dll's.
Leider startet das Programm nicht - folgende Fehlermeldung:



Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/internal/gtk/OS
at org.eclipse.swt.internal.Converter.wcsToMbcs(Conve rter.java:63)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Conve rter.java:54)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:118)
at AmazonTestEins.initGUI(AmazonTestEins.java:31)
at AmazonTestEins.main(AmazonTestEins.java:27)



Das verstehe ich nicht ganz. Wieso will er unter Windows etwas von gtk laden? Kann mir das jemand erklären?

Vielen Dank im voraus,
gruss, kip

anda_skoa
31-08-2004, 10:30
Hast du vielleicht irrtümlich das swt.jar von Linux rüberkopiert und es befindet sich im Classpath vor dem SWT für Windows?

Ciao,
_

kip
31-08-2004, 14:55
hi!

hmm ... ja, das war schonmal ein Fehler ;) Danke! :D

Ich hab gedacht die jar Files sind die gleichen, nur die dll's bzw. libs würden sich unterscheiden. Muss ich, wenn ich ein Archiv für Windows erstellen will, in Eclipse auch die swt.jar austauschen? D.h. Eclipse das ganze mit der swt.jar von Win kompilieren lassen?

Ich würde mal selbst sagen: nein, aber zur Sicherheit frag ich euch mal :)

peschmae
31-08-2004, 15:01
hmm ... ja, das war schonmal ein Fehler ;) Danke! :D

Ich hab gedacht die jar Files sind die gleichen, nur die dll's bzw. libs würden sich unterscheiden.

Die eigentliche SWT-Arbeit geschieht in den Jar-Files. D.h. die dll/so's leiten nur Funktionsaufrufe weiter - die Abstrahierung der Platform-Api nach SWT geschieht in den Jars. Deshalb sind die ebenfalls Platformspezifisch.



Muss ich, wenn ich ein Archiv für Windows erstellen will, in Eclipse auch die swt.jar austauschen? D.h. Eclipse das ganze mit der swt.jar von Win kompilieren lassen?

Ich würde mal selbst sagen: nein, aber zur Sicherheit frag ich euch mal :)

Du kannst das SWT-Jar nachträglich austauschen - d.h. das Programm wird unter Linux kompiliert und dann unter Windows zusammen mit dem Windows-SWT-Jar und der dll verwendet.
Das kannst du einfach so austauschen, weil die Dateien im Jar ja noch nicht "wirklich" kompiliert sind - d.h. es ist immer noch Java-Bytecode der die SWT-Api anspricht (und wie genau die dann implementiert ist ist egal bzw. erst zur Laufzeit des Programmes relevant).

MfG Peschmä

kip
31-08-2004, 19:28
alles klar ... vielen Dank für die Infos :)