Skip to end of metadata
Go to start of metadata

If you start JOE (./bin/jobeditor.sh) on Unix and you get an error like

Can't load library: /tmp/swtlib-32/libswt-pi-gtk.so

 Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
        no swt-pi-gtk-3655 in java.library.path 
        no swt-pi-gtk in java.library.path 
        /tmp/swtlib-32/libswt-pi-gtk-3655.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory 
        Can't load library: /tmp/swtlib-32/libswt-pi-gtk.so

then a library is missing that is required by libswt-pi-gtk-3655.so.

Type

 ldd /tmp/swtlib-32/libswt-pi-gtk-3655.so

This should make visible which libraries are missing.

Output Example:

        libgtk-x11-2.0.so.0 =>   (file not found)
        libgthread-2.0.so.0 =>   (file not found)
        libXtst.so.1 =>  /lib/libXtst.so.1
        libXext.so.0 =>  /lib/libXext.so.0
        libX11.so.4 =>   /lib/libX11.so.4
        libc.so.1 =>     /lib/libc.so.1
        libsocket.so.1 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libdl.so.1 =>    /lib/libdl.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        /usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1

Install the missing libraries and try it again.

org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

 Exception in thread "main" org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
        at org.eclipse.swt.SWT.error(Unknown Source)
        at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)
        at org.eclipse.swt.widgets.Display.create(Unknown Source)
        at org.eclipse.swt.graphics.Device.<init>(Unknown Source)
        at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
        at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
        at org.eclipse.swt.widgets.Display.getDefault(Unknown Source)
        at sos.scheduler.editor.app.Editor.main(Editor.java:102)

gtk_init_check() fails if it cannot open a socket to the X Server.

We know two situations in which the connection to the X Server fails:

  1. You want to start JOE from Windows via SSH
    • The X11 tunnel is not established
      For example if you use PuTTy then the X11 forwarding is per default off. Navigate in the PuTTy connection settings to Connection->SSH->X11 and activate the checkbox "Enable X11 forwarding".
    • A local X server is not started
      For example you can install Xming as local X server for Windows.
  2. You want to start JOE from Ubuntu 16.04 with installed X server libraries via SSH
    • It seems the SSH client has errors. Install the SSH client again

      sudo apt -y install ssh
Write a comment…