@shellex说: 对对,他们上辈子都是折翼的新奥尔良鸡翅

Pages

Topics

随便看看

路边社评论员

  • Keith:
    还能用不. »
  • deepblue:
    测试一下浏览器和系统 »
  • abettor:
    “就和CPU特权级别一样”——这的哥难道是Linus的表弟?! »
  • 董英男:
    为什么总提示确认是相册首页呢 到底哪个才是相册首页啊 »
  • kendisk:
    作为一个轻度Linuxer,刚分手后,感觉木有鸭梨。 »
  • MS IE:
    THIS SITE REALLY SUCK! »
  • Alex:
    gnome-women... »
  • liangsuilong:
    GNOME 自己也有鼓励女性参与项目的计划啊.. »
  • infinte:
    对不起,你的“解ban”版本算得有点问题,可以下(9)pp4 测试。ACID3可有95分啊……另外同... »
  • Alex:
    »
  • Randee Saadat:
    Glad you solved your problem, but what is your que... »
  • LinuxRock:
    没想到你也有一台和我一样的破机子......还好现在高三没怎么用,受不了它的发热量.. »

在Linux下进行JavaME CDC开发

Java遗憾得很,按照Sun对待Desktop产品的作风,和JavaFX一样,姗姗来迟的Sun Java Toolkits for CDC只有Windows的版本。

看来这个Sun的这个Mobile/Embedded部门对待自家的Solaris也不见的有多友好…所以我们用Linux的同学也沾不到什么光。

不过还好了,PhoneME这个项目的存在真是让人倍感欣慰。于是偶这个用Gentoo的同学才有了在Linux上开发CDC程序的可能性。

在这里已经有前辈做了相关的工作(需翻墙,不是故意要屏蔽小白的):

在ubuntu下用Eclipse开发基于PhoneMe Advance的J2me程序(1)-基本配置

在ubuntu下用Eclipse开发基于PhoneMe Advance的J2me程序(2)-AWT开发

如果懒得翻墙可以听我简单的说下。

phoneME有两个开发版,一个是for CLDC的PhoneME Feature,一个是for CDC的PhoneME Advanced。

那么我需要下载支持CDC的PhoneMe Advanced for Linux的Milestone Releases。如果需要GUI (AWT only),请下载具备 Persoanl  Profile(PP)支持MR1版本,否则就是MR2版本,它不支持PP,只支持Personal Basic Profile。

PhoneMe Advanced Mr2 可以在下载页下载:https://phoneme.dev.java.net/downloads_page.html#advanced

PhoneMe Advanced Mr1 可以在陈旧的下载页下载:https://phoneme.dev.java.net/downloads_previous.html#advanced

然后解压就好。如果是Mr1,选择里面那个pp结尾的目录,里面就是phoneME的runtime。而bin目录下的cvm则是JavaME 虚拟机。

测试一下:

[shellex@gentoo:bin]$ ./cvm -version
Product: CDC AMS 1.0 for PP (b31)
Profile: Personal Profile Specification 1.1
JVM:     CDC 1.1.1_01 (interpreter loop)

很好很强大。
写一个巨呆B的Hello World。我还要图形的。很简单的,就俩按钮,一个用来正日,一个用来日成。代码和运行结果如下

package org.demo;

import java.awt.*;
import java.awt.event.*;

public class Test extends Frame {
	Button fuck_me ;
	Button fuck_off ;
	public static void main(String args[]) {
		Test f = new Test("WTF?");
		f.launch();
	}

	public Test(String str) {
		super(str);
	}

	public void launch() {
		this.setSize(300, 100);
		this.setLayout(new FlowLayout());
		fuck_me = new Button("Fuck Me!");
		fuck_off = new Button("Fuck Off!");
		// register new Actions Listener
		fuck_me.addActionListener(this.new FuckMeHandler());
		fuck_off.addActionListener(this.new FuckOffHandler());
		this.addWindowListener(this.new FrameHandler());
		fuck_me.setActionCommand("You");

		this.add(fuck_me);
		this.add(fuck_off);
		this.setVisible(true);
	}

	class FuckMeHandler implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			System.out.println("Fuck " + e.getActionCommand() + "!");
		}
	}

	class FuckOffHandler implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			System.exit(0);
		}
	}

	class FrameHandler extends WindowAdapter {
		public void windowClosing(WindowEvent e) {
			System.exit(0);
		}
	}
}

another screenshot for phoneME application
真丑哈,这UI。

如果你像我一样使用较新的Java SDK(比如Sun-Java-SDK-6),那么编译的时候不要忘了给javac指定 -source 参数和 -target 参数以保证class文件和源文件的版本兼容性(如图)。都设置为1.4以下的版本即可。

由于PhoneME使用的Awt对于Linux绑定的Native GUI component是QT,所以可能出现一些问题。

如果运行时出现libqtawt.so相关的连接错误,请用

ldd [phoneME Home]/lib/libqtawt.so

检查它的依赖情况。然后根据输出补全对应的缺少的动态链接库文件即可。比如的gentoo,对QT无爱,可不想编译几十Mb去搞一个Java Awt的QT bind,所以就根据需要去我的ubuntu下copy了缺少的两个库文件到phoneME的lib目录下。

如果你用Ubuntu开发估计不会出现这种情况。

===========Eclipse 的伟岸分割线 =======================
好了。没有IDE,做Java工程可以说相当的痛苦(shellex不会ant)。
哦…看到Eclipse这伟岸的Logo,我的小心肝禁不住扑嗵扑嗵地跳了起来…好了,现在让我们为Eclipse加入PhoneME支持。

需要下载的东东是mToolkit,官网(http://dz.prosyst.com

下载其中的ProSyst mToolket Basic Edition的GUI setup tool。其实就丫是一Eclipse插件,让Eclipse能使用丫的phoneME JRE,安装即可。

然后在Eclipse的Preferences->Java->Installed JERs里面添加新的运行环境。选择CVM VM,指定你的phoneME安装路径即可。

也别忘了在Eclipse的Project->Propertes里面设置Java Compiler的JDK compliance里设置兼容性。
eclipse setting

好了,现在建立Java工程时可选这个JER了。可以开始写CDC程序了。如果还出现问题,不妨写一个启动脚本,临时添加一些环境变量:

#! /bin/sh
cd ~/Programs/eclipse
# setting for PhoneME.
export PHONEME_HOME=/home/shellex/Programs/phoneme/phoneme_advanced-mr1-pp/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PHONEME_HOME/lib
export PATH=$PATH:$PHONEME_HOME/bin
export PATH=$PATH:/usr/lib/jvm/java-6-sun/bin
./eclipse
  1. On June 7, 2009 at 7:16 pm
    gza633: Mozilla Firefox 3.0.10 / Windows Vista

    说到sun 明天在北京有个sun的”second life”的推广会 有兴趣可以去看看

Leave a Reply