Re: Running AWT/SWING apps on embedded system

"ffileppo" <[email protected]>
Newsgroups gmane.comp.gcc.java.devel
Message-ID <[email protected]>
> Francesco> I would like to run some sample AWT/SWING java code
> Francesco> compiled with gcj on my embedded box (an arm-based board
> Francesco> with a LCD screen).
>
> Francesco> I'm quite confused about what graphical libraries are
> Francesco> needed to do that, something like directfb or qt embedded?
>
> Francesco> Which is the best choice for an embedded box?
>
> My recollection is that the best-supported AWT peers are based on
> Gtk.  This may be too heavy for your use case, I'm not sure.
>
> There are some other peer implementations in there, but I don't think
> they are as complete.  I guess you'd have to experiment a bit, or
> maybe ask on the Classpath list -- the folks working on the non-Gtk
> back ends are more active over there.
>
> Tom
>

Hi Tom,

thanks for your help.
Would you give me some precise reference about non-gtk backends? I can't find any usefull info..

This is the error I get when I try to run on my embedded box some AWT/SWING code compiled with gcj:

Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit:
   at java.awt.Toolkit.getDefaultToolkit(libgcj.so.9)
   at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(libgcj.so.9)
   at java.awt.Window.<init>(libgcj.so.9)
   at java.awt.Frame.<init>(libgcj.so.9)
   at javax.swing.JFrame.<init>(libgcj.so.9)
   at ActionExample.<init>(ActionSwing)
   at ActionExample.main(ActionSwing)
Caused by: java.lang.ClassNotFoundException:
   at java.lang.Class.forName(libgcj.so.9)
   at java.awt.Toolkit.getDefaultToolkit(libgcj.so.9)
   ...6 more


How can I set which AWT peer classpath will be using?

I'm getting a very similar error when I try to run the same code using jamvm (which uses classpath too):

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(GraphicsEnvironme
nt.java:103)
   at java.awt.Window.<init>(Window.java:133)
   at java.awt.Frame.<init>(Frame.java:246)
   at javax.swing.JFrame.<init>(JFrame.java:123)
   at ActionExample.<init>(ActionExample.java:79)
   at ActionExample.main(ActionExample.java:118)
Caused by: java.lang.UnsatisfiedLinkError: Native library `gtkpeer' not found (a
s 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:662)
   at gnu.java.awt.peer.gtk.GtkToolkit.<clinit>(GtkToolkit.java:173)
   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


I see that in this case it is looking for a particular peer (gtkpeer)

Francesco
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.