Anzeige:
Ergebnis 1 bis 13 von 13

Thema: swt unter linux

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    03.04.2005
    Beiträge
    13

    swt unter linux

    Hi,

    ich möchte mir unter gentoo swt installieren. Das Paket swt habe ich schon mit emerge installiert. Verschiedene Tutorials zu swt beschreiben nur die installation von swt in der eclipse-umgebung oder für windows. Ich möchte aber wie gewohnt die Programme von der Kommandozeile starten.
    Wie muss ich also vorgehen, damit ich ein swt-programm in linux ausführen kann?
    mfg

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zu SWT gehören einige .jar-Dateien und eine dynamische Bibliotheken.

    Die Dynamischen Bibliotheken (.so-Dateien) müssen vom Linker gefunden werden - also der Ordner in dem sie drin sind steht in /etc/ld.so.conf (nach Änderungen ldconfig ausführen) oder in der Umgebungsvariable LD_LIBRARY_PATH.

    Bei mir sind das die Dateien da:
    Code:
    ./plugins/org.eclipse.swt.gtk_3.0.2/os/linux/x86/libswt-gtk-3064.so
    ./plugins/org.eclipse.swt.gtk_3.0.2/os/linux/x86/libswt-gnome-gtk-3064.so
    ./plugins/org.eclipse.swt.gtk_3.0.2/os/linux/x86/libswt-pi-gtk-3064.so
    ./plugins/org.eclipse.swt.gtk_3.0.2/os/linux/x86/libswt-atk-gtk-3064.so
    ./plugins/org.eclipse.swt.gtk_3.0.2/os/linux/x86/libswt-awt-gtk-3064.so
    ./plugins/org.eclipse.swt.gtk_3.0.2/os/linux/x86/libswt-mozilla-gtk-3064.so
    für SWT auf Gtk-Basis. Am besten suchst du einfach mal nach libswt

    Zusätzlich gibts noch einige .jar-Dateien. Unter anderem swt.jar (und einfach alle die du im gleichen Ordner findest wie die swt.jar). Die gehören in deine "CLASSPATH"-Umgebungsvariable verstaut:
    export CLASSPATH=/opt/eclipse/swt.jar:/opt/eclipse/swt-pi.jar:/opt/eclipse/swt-mozilla.jar:.
    oder so ähnlich in deine .bashrc schreiben.

    In meinem SWT Tutorial war das aber glaubich beschrieben (ist aber schon so zwei Jahre alt - guck mal auf meiner Homepage)

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.04.2005
    Beiträge
    13
    Hi,
    erstmal danke schön für die Antwort. Leider funktioniert es noch nicht ganz:
    Ich hab die libswt*.so dateien mit ihren Verzeichnissen (die ich gefunden habe) in /etc/ld.so.conf reingeschrieben und ldconfig ausgeführt und davor in der Konsole ausgeführt. Außerdem habe ich
    export CLASSPATH=/opt/eclipse/swt.jar:/opt/eclipse/swt-pi.jar:/opt/eclipse/swt-mozilla.jar:.
    in meine .bashrc reingeschrieben. Nun wollte ich folgendes Programm (aus dem Netz) mit javac SWTHelloJava.java kompilieren, was auch ohne Probleme funktionierte:
    Code:
    import org.eclipse.swt.widgets.*; 
    import org.eclipse.swt.*; 
    
    public class SWTHelloWorld 
    { 
    	public static void main(String[] args) 
    	{ 
    		Display display = new Display(); 
    		Shell shell = new Shell(display); 
    		Label label = new Label(shell, SWT.NONE); 
    		label.setText("Hello, World!"); 
    		shell.pack(); 
    		label.pack(); 
    		shell.open(); 
    		while (!shell.isDisposed()) 
    			if (!display.readAndDispatch()) 
    				display.sleep(); 
    		display.dispose(); 
    		label.dispose(); 
    	} 
    }
    Leider funktionierte das Ausführen mit java SWTHelloWorld nicht. Hierbei wurde
    ausgegeben:
    Code:
    java SWTHelloWorld
    Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/internal/gtk/OS
            at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
            at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
            at org.eclipse.swt.widgets.Display.<clinit>(Display.java:118)
            at SWTHelloWorld.main(SWTHelloWorld.java:9)
    Wo liegt der Fehler?

    mfg

  4. #4
    Registrierter Benutzer
    Registriert seit
    03.04.2005
    Beiträge
    13
    Hi, ich poste noch mal die Dateinträge in aller Ausführlichkeit:
    Hierbei liegen die entsprechenden Dateien in /usr/lib/eclipse-3

    Code:
          1 # ld.so.conf autogenerated by env-update; make all changes to
          2 # contents of /etc/env.d directory
          3 /usr/local/lib
          4 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130
          5 /usr/lib/opengl/ati/lib
          6 /usr/lib/mozilla
          7 /usr/X11R6/lib
          8 /opt/sun-jdk-1.4.2.06/jre/lib
          9 /usr/qt/3/lib
         10 /usr/kde/3.3/lib
         11 /usr/games/lib
         12 /usr/lib/eclipse-3/libswt-atk-gtk-3064.so
         13 /usr/lib/eclipse-3/libswt-awt-gtk-3064.so
         14 /usr/lib/eclipse-3/libswt-gnome-gtk-3064.so
         15 /usr/lib/eclipse-3/libswt-gtk-3064.so
         16 /usr/lib/eclipse-3/libswt-mozilla-gtk-3064.so
         17 /usr/lib/eclipse-3/libswt-pi-gtk-3064.so
    -> aufruf von ldconfig
    ---------------------
    bash# ldconfig
    ldconfig: /lib/ld-linux.so.1 is not a symbolic link

    ->classpath:
    ------------
    bash# echo $CLASSPATH
    /usr/lib/eclipse-3/swt-mozilla.jar:/usr/lib/eclipse-3/swt.jar:/usr/lib/eclipse-3/swt-pi.jar

    ->eintrag in .bashrc:export
    --------------------------
    CLASSPATH=/usr/lib/eclipse-3/swt-mozilla.jar:/usr/lib/eclipse-3/swt.jar:/usr/lib/eclipse-3/swt-pi.jar

  5. #5
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Verstehe ich nicht - die Klasse OS die er nicht zu finden behauptet ist in dem swt-pi.jar und das ist im Classpath. Das *muss* gehen so.

    Das einzige was ich mir jetzt vorstellen könnte ist das es die Datei nicht gibt oder dass die irgendwie kaputt ist und die OS.class-Datei nicht enthält. Beides eher abwegig.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  6. #6
    Registrierter Benutzer
    Registriert seit
    03.04.2005
    Beiträge
    13
    Die neueste Fehlermeldung lautet:

    $ java SWTHelloWorld
    Exception in thread "main" java.lang.NoClassDefFoundError: SWTHello

    Woran kanns liegen?

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •