红联Linux门户
Linux帮助

关于在Linux上启动J2ME及其emulator失败的解决办法

发布时间:2008-04-10 12:56:56来源:红联作者:panaiec
在一些中文Linux系统上(比如:Ubuntu 8.04等)使用J2ME来开发手机移动应用的情况下,很多人都遇到了无法启动WTK及其模拟器的情况,在网络上搜索也难得到解决方案,通常大家在通过 Eclipse启动Emulator的时候遇到的异常情况如下:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initSystemColorDefaults(GTKLookAndFeel.java:1267)
at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(GTKLookAndFeel.java:1509)
at

如果通过命令行直接启动WTK会遇到如下情况:

(:14996): Gtk-WARNING **: Attempting to add a widget with type GtkButton to a GtkComboBoxEntry (need an instance of GtkEntry or of a subclass)

(:14996): Gtk-CRITICAL **: gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed

这些错误是应用WTK及其模拟器采用了Java中的UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 语句来使用系统自身的lookandfeel,而Ubuntu系统中没有安装对应的主题导致的错误,而目前本人并没有在安装包中找到相关的主题安装内容(注意:不代表不存在,只是本人没有找到而已),如果有哪位同行找到也请发布上来,谢谢。

在当前情况下如何解决这一个问题是关键,这里本人给出了如下解决办法:

首先找到你的WTK的安装目录,在bin中找到ktoolbar和emulator这两个文件,这两个是启动WTK和Emulator的两个启动文件,使用vi或者gedit来对这两个文件进行编辑,在两个文件中的相关位置添加如下一行即可:

-Dswing.systemlaf="javax.swing.plaf.metal.MetalLookAndFeel" \

添加后的ktoolbar如下(注意红色标注的那行即可):
......

"${javapathtowtk}java" -Dkvem.home="${KVEM_HOME}" \
-Djava.library.path="${KVEM_HOME}/bin" \
-Dswing.systemlaf="javax.swing.plaf.metal.MetalLookAndFeel" \
-cp "${KVEM_LIB}/kenv.zip:${KVEM_LIB}/ktools.zip:${KVEM_BIN}

......

修改后的emulator文件内容如下:
......
"${javapathtowtk}java" -Dkvem.home="${KVEM_HOME}" \
-Djava.library.path="${KVEM_HOME}/bin" \
-Dswing.systemlaf="javax.swing.plaf.metal.MetalLookAndFeel" \
-cp "${KVEM_LIB}/kenv.zip:${KVEM_LIB}/ktools.zip:${KVEM_LIB}
......

了,大功告成,现在可以运行WTK和Emulator了,而且还是中文的,继续努力吧。
文章评论

共有 0 条评论