Gnu Classpath on HP webOS : connexion problem between escher and X server / or loadling escher problem by Gnu classpath

Brian Jones cbjones1@gmail.com
Tue Jan 10 23:53:00 GMT 2012


Ideally here you'd probably want to write peers not using X & remove
that dependency.

On Jan 10, 2012, at 6:40 PM, Yannick <yleny@laposte.net> wrote:

> Hello,
>
> I try to create a Java J2SE (Java Desktop) port to HP webOS with Gnu
> Claspath and JamVVM.
>
> You can find my working page here :
> Building JamVM and GNU Classpath and Jikes (for Java support in webOS)
> with scratchbox2
> http://www.webos-internals.org/wiki/Building_JamVM_and_GNU_Classpath_and_Jikes_%28for_Java_support_in_webOS%29_with_scratchbox2
>
> All the compilation options and installation steps for Gnu Classpath 0.98,
> escher 0.3.0, javm 1.5.4 are detailed in the web page here :
> http://www.webos-internals.org/wiki/Building_JamVM_and_GNU_Classpath_and_Jikes_%28for_Java_support_in_webOS%29_with_scratchbox2
>
> 1) I patch Gnu Classpath 0.98 with the patch here
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41057 to compile and install
> it with
> escher 0.3.0.
>
> 2) I use this line for compiling Gnu Classpath :
> LDFLAGS="-L/usr/local/lib -Wl,-rpath=/media/internal/opt/lib"
> CPPFLAGS="-I/usr/local/include" ./configure --prefix=/media/internal/opt
> --disable-examples --with-x --disable-gtk-peer --disable-gconf-peer
> --disable-plugin --disable-alsa --disable-dssi
> --with-escher=/home/ubuntu/java-project/escher-0.3/src
> --enable-local-sockets
> --enable-collections --enable-xmlj
>
> 3) Makefile for X server binaries on webos :
> http://git.webos-internals.org/preware/cross-compile/tree/packages/x/xserver-package/Makefile
>
> 4) Packagind and script to use X server on webOS :
> http://git.webos-internals.org/x11/xserver/tree/
>
> My problem is that escher, a Java lib that is a Java client, can not
> connect to
> the X server or that Gnu Classpath can find the escher lib/java classes.
> How works escher : http://marcosroriz.wordpress.com/2010/06/14/gsoc-updates/
>
> In my webOS process list, I have :
>
> root@Palm
> Pre:/media/cryptofs/apps/usr/palm/applications/org.webosinternals.xserver/bin#
> ps -edf
> ...
> root 1902 1 2 04:38 ? 00:00:38
> /media/cryptofs/apps/usr/palm/applications/org.webosinternals.xserver/bin/Xsdl
> -retro -noreset :0.0
> root 1936 1 0 04:38 ? 00:00:00
> /media/cryptofs/apps/usr/palm/applications/org.webosinternals.xterm/bin/xterm
> -display :0.0 -maximize -xrm *metaSendsEscape: true -u8 -e login -p -f root
> ...
>
> When I launch the JRE and with Xterm started, I have the following error
> message :
>
> root@Palm Pre:/media/internal# /media/internal/opt/bin/jamvm HelloWorld
> -bootclasspath
> /media/internal/opt/share/jamvm/classes.zip:/media/internal/opt/share/classpath/glibj.zip:/media/internal/
> opt/share/classpath/escher-0.3.jar:/media/internal/opt/share/classpath/collections.jar
> HelloWorld -Dawt.toolkit=gnu.java.awt.peer.x.XToolkit HelloWorld
> Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit:
> gnu.java.awt.peer.gtk.GtkToolkit
> at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:607)
> at
> java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:103)
> at java.awt.Window.(Window.java:133)
> at java.awt.Frame.(Frame.java:246)
> at java.awt.Frame.(Frame.java:234)
> at HelloWorld.(HelloWorld.java:7)
> at HelloWorld.main(HelloWorld.java:5)
> Caused by: java.lang.UnsatisfiedLinkError: Native library `gtkpeer' not
> found
> (as file `libgtkpeer.so') in gnu.classpath.boot.library.path and
> java.library.path
> at java.lang.Runtime.loadLibrary(Runtime.java:763)
> at java.lang.System.loadLibrary(System.java:670)
> at gnu.java.awt.peer.gtk.GtkToolkit.(GtkToolkit.java:177)
> at java.lang.VMClass.forName(Native Method)
> at java.lang.Class.forName(Class.java:233)
> at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:583)
> ...6 more
> But here Gnu Classpath is not compiled to use libgtkpeer.so (c/C++ lib
> with Qt
> or GTK) but escher java lib.
> And I found no error when I launch it in webos /var/log/messages file.
>
> In escher documentation on the Internet, I found that :
> * To test X Awt peer, you must remove "-nolisten TCP" from XServer start
> script.
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41057
> *in console type the command line xhost+
> http://rbytes.net/linux/escher-review/
> The problem is that I can not change the XServer start script used by webOS.
> I have no xhost script or binary on my webOS device.
>
> Here : http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41057
> I found a patch that I have applied on Gnu Classpath 0.98 to use it with
> escher
> 0.3.0
> and in the diff for this patch :
> http://gcc.gnu.org/bugzilla/attachment.cgi?id=18352&action=diff
> you can find the line
> display = new Display(socket, "localhost", displayName.display_no,
> displayName.screen_no);
>
> Do I need to use login and a password  for connexion with the X server
> on webOS
> device ?
>
> Can you help me to :
> 1) to check that all is OK with escher and my Gnu Classpath ?
> 2) to check conexion problem between Gnu Classpath/escher and the X server ?
>
> My goal is to create the webOS internals's Java Desktop PDK for webOS as
> webOS
> PDK with C/C++.
>
> Thank you for your help.
>
> Best regards
>
> Yannick
>



More information about the Java mailing list