Ubuntu 8.10/8.04下搭建javaMe 开发环境

  1. 安装JDK

  • 下载和安装JDK

方法一: 从新立德软件包管理器选择下载,自动安装(推荐)

    Ubuntu 8.10和8.04均提供了较新的jdk版本下载

    Ubuntu 8.10: java-1.5.0-sun-1.5.0.16和 java-6-sun-1.6.0.10

    Ubuntu 8.04: java-1.5.0-sun-1.5.0.16和java-6-sun-1.6.0.07

    这种安装方式缺点是:对JDK具体版本的可选择性不是很灵活,你若是想安装最新的JDK版本,或由于特殊的原因必须安装特定的JDK版本,可能就比较费劲了。不过已经可以满足一般用户的需要了。

    方法二: 直接从sun公司站点上download ,手动安装

参考:

这种方式显然有它的好处: 可自由选择JDK版本,能进行灵活的配置。其实JDK的配置是很简单的:能让系统找到JDK所在的目录(JAVA_HOME),以便调用其目录中bin目录下的相关命令脚本。

于windows底下不一样的是,我们下载到的不是”*.exe”文件而是:“*.bin软件包”(*指的是实际安装程序的名字或部分名字,下同)。

扩展名为.bin文件是二进制的,它也是源程序经编译后得到的机器语言。

安装.bin文件,在终端(Terminal)中执行:

cd /usr/local/lib

sudo cp /home/*.bin ./

sudo chmod +x *.bin

sudo ./*.bin

执行最后一步命令后便在当前目录下多了一个“jdk1.*.0_**“的目录,里面是jdk-*-linux-i386.bin解压后JDK的全部文件;

另外由于Ununtu本身带了gij的JVM实现,所以当你在Terminal输入: "java -version"时会显示:

java version "1.5.0"

gij (GNU libgcj) version 4.2.*

的相关信息。也就是系统中有两个JVM实现,而且gij JVM还被其它的Ubuntu工具或软件使用;所以这种情况下就得使用 Debian提供的“update-alternatives“工具来完成程序多版本实现的选择了:

sudo update-alternatives --display java

发现系统只列举了gij JVM;这是因为jdk5/6是我们通过手动解压安装的。

现在输入下面的两行命令:

sudo update-alternatives --install /usr/bin/java java /usr/local/lib/jdk1.*.0_**/bin/java 60

sudo update-alternatives --install /usr/bin/java java /usr/bin/gij-4.2 40

注意1,2行尾的60,40是优先级;现在把JDK6设为了首选;

输入: ls -l /etc/alternatives/java 发现JVM已经指向了jdk6的解压目录:

lrwxrwxrwx 1 root root 35 2008-01-25 17:55 /etc/alternatives/java -> /usr/local/lib/jdk1.6.0_04/bin/java

cd /usr/bin

sudo cp java java.bak

sudo ln -sf /etc/alternatives/java .

现在再执行:

java -version

java version "1.6.0_04"

Java(TM) SE Runtime Environment (build 1.6.0_04-b12)

Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

若想变更JVM实现,输入:

sudo update-alternatives --config java

进行配置即可。

  • 设置jdk的环境变量

方法1:编辑profile

在终端中输入:

sudo gedit /etc/profile

然后,在/etc/profile中加入如下的内容:

(注意:在文章未尾umask 022之前)

export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.10 (具体路径设置,请根据自己的JDK实际安装目录来定,下同)

export JRE_HOME=/usr/lib/jvm/java-6-sun-1.6.0.10/jre

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib:$JRE_HOME/lib

保存,退出。

    方法2:编辑environment:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

LANG="zh_CN.UTF-8"

LANGUAGE="zh_CN:zh:en_US:en"

CLASSPATH=./:/usr/lib/jvm/java-6-sun-1.6.0.10 /lib

JAVA_HOME=/usr/lib/jvm/jjava-6-sun-1.6.0.10

保存关闭.

最后, 在终端输入:

source /etc/profile

使配置环境生效(或者注销在重新登陆也可).

到此, JDK安装和环境就设置好了,可以输入java -version或java或javac,还可以自己写个Helloworld测试下.

-----------------------------------------------

  1. 安装 WTK

  • 第一步:到sun公司的网页上 Download Sun Java Wireless Toolkit for CLDC 2.5.2 ML for Linux

下面是我下载版本的链接:

https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter

同样也是下载到*.bin软件包

  • 第二步:在Ubuntu下安装*.bin程序

1).先把*.bin从所在的文件夹拷到/usr/local下面,进入*.bin文件所在的目录,否则要加文件地址。

2).执行命令:sudo chmod +x *.bin

给当前用户增加对.bin文件运行的权限:

3).执行命令:sudo ./*.bin

进行安装,会出现有一些安装的信息,需要确认的。都是简单的英文,一般按默认选项就好了,就不一一列举了。

终端命令:

sudo cp /home/zhu/download/开发工具/sun_java_wireless_toolkit-2_5_2-ml-linux.bin /usr/local/ (把下载的文件拷贝到相应的目录底下)

sudo chmod +x /usr/local/sun_java_wireless_toolkit-2_5_2-ml-linux.bin (增加运行权限)

cd /usr/local/

sudo ./sun_java_wireless_toolkit-2_5_2-ml-linux.bin (安装)

sudo rm sun_java_wireless_toolkit-2_5_2-ml-linux.bin (删除安装文件)

还要注意的是:如果发现在安装后,运行WTK出现假死的问题。则需要重装来指定一下jdk的路径。

也就所在安装信息的如下选项中:

A suitable Java interpreter was detected

0) Use /usr/X11R6/bin/

1) Specify a path to a Java interpreter directory.

2) Cancel this installation.

Select a choice [0-2]: 0

Please enter a directory into which you would like to install the Sun Java(TM) Wireless Toolkit, 2.5.2 for CLDC.

[ default is /usr/local/WTK2.5.2 ]: /usr/lib/jvm/java-6-sun-1.6.0.10/bin/(具体路径,请按照自身的实际情况设置)

即可。

当然,如果不想重装,可以采用临时的解决方案:修改ktoolbar 和emulator

在终端中输入:

cd /usr/local/WTK2.5.2/bin

sudo gedit ktoolbar

把javapathtowtk项修改为:

javapathtowtk=/usr/lib/jvm/java-6-sun-1.6.0.10/bin/

同理:

sudo gedit emulator

把javapathtowtk项修改为:

javapathtowtk=/usr/lib/jvm/java-6-sun-1.6.0.10/bin/

-----------------------------------------------

  1. 安装 Elipse

  • 第一步:下载

    方法1: 从新立德软件包管理器选择下载,自动安装

    提供版本为:

    Eclipse SDK

Version: 3.2.2

Build id: M20070212-1330 (Ubuntu version: 3.2.2-5ubuntu2)

如果对版本要求不高的,可以采用这种安装方式,这样比较傻瓜,可以免除设置可执行文件和添系统菜单。

方法2:eclise.org下载,手动安装

下载到类似的文件:eclipse-java-europa-fall2-linux-gtk.tar.gz.

首先,解压文件

sudo mkdir /usr/local/dev

sudo mkdir /usr/src/dev

sudo cp sudo cp eclipse-SDK-3.4.1-linux-gtk.tar.gz /usr/src/dev/

cd /usr/src/dev

sudo tar zxvf eclipse-SDK-3.4.1-linux-gtk.tar.gz -C /usr/local/dev

其次,建立一个Eclipse可执行文件

sudo touch /usr/bin/eclipse

sudo chmod 755 /usr/bin/eclipse

sudoedit /usr/bin/eclipse

内容如下:

#!/bin/sh

export ECLIPSE_HOME="/usr/local/dev/eclipse"

$ECLIPSE_HOME/eclipse $*

现在打开Terminal,执行"eclipse"应该能打开Eclipse了。

最后,再添加Eclipse到Gnome菜单中

sudoedit /usr/share/applications/eclipse.desktop

内容如下:

[Desktop Entry]

Encoding=UTF-8

Name=Eclipse

Comment=Eclipse IDE

Exec=eclipse

Icon=/usr/local/dev/eclipse/icon.xpm

Terminal=false

Type=Application

Categories=GNOME;Application;Development;

  StartupNotify=true

  • 第二步:如果出现(The custom VM you have chosen is not a valid executable.)

  编辑 Eclipse 的 java_home 文件:

sudo gedit /etc/eclipse/java_home

将文件中的

/usr/lib/jvm/java-6-sun-1.6.0.10(这是我的java_home目录,根据自己的实际情况来定)

这一行添加或移动到文件的顶部。

  • 第三步:

sudo gedit ~/.eclipse/eclipserc

在这里面加一段代码:

JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.10(这是我的java_home目录)

保存一下就好了。

-----------------------------------------------

  1. 安装netbeans

    与 Eclipse的安装比较相似。

  • 第一步:下载

    方法1: 从新立德软件包管理器选择下载,自动安装

    提供版本为:

    Product Version: NetBeans IDE 6.1 (Build 080905)

    Java: 1.6.0_10; Java HotSpot(TM) Client VM 11.0-b15

    System: Linux version 2.6.27-10-generic running on i386; UTF-8; zh_CN (nb)

    Userdir: /home/zhu/.netbeans/6.1

方法2:eclise.org下载,手动安装

下载到类似的文件: netbeans-6.1-ml-mobility-linux.sh.

开始,安装文件(双击,或者...):

sudo cp netbeans-6.1-ml-mobility-linux.sh /usr/src/dev/

cd /usr/src/dev

sudo chmod +x netbeans-6.1-ml-mobility-linux.sh

sudo ./netbeans-6.1-ml-mobility-linux.sh

执行最后一步后,出现安装界面,选择安装目录和JDK的位置,确定后完成安装,在当前目录生成了“netbeans-6.1"目录,里面是Netbeans的内容。

建立一个Netbeans可执行文件:

sudo touch /usr/local/bin/netbeans

sudo chmod 755 /usr/local/bin/netbeans

sudoedit /usr/local/bin/netbeans

内容如下:

#!/bin/sh

#!/bin/sh

export NETNEANS_PATH="/usr/local/dev/netbeans-6.1/bin"

$NETNEANS_PATH/netbeans $*

添加Netbeans到Gnome菜单中:

sudoedit /usr/share/applications/netbeans.desktop

内容如下:

[Desktop Entry]

Encoding=UTF-8

Name=NetBeans6.0

Comment=Sun Netbeans IDE

Exec=netbeans

Icon=/usr/local/dev/netbeans-6.1/nb6.1/netbeans.png

Terminal=false

Type=Application

Categories=GNOME;Application;Development;

StartupNotify=true

注:其实netbeans的某些版本(像我这里的netbeans-6.1-ml-mobility-linux.sh)已经集成了WTK,可以在下载的时候选择你所需要的版本,这样也可以免除安装WTK

  1. 其他可能出现的问题

  • netbeans/WTK中文乱码

    一般如果是采用自动安装,且JDK为6.0的以上的不会出现问题

    如果出现,可以尝试这样解决中文支持问题,就是在 java 安装目录下放进去一个中文字体即可。

    终端输入:

    cd /usr/lib/jvm/java-6-sun/jre/lib/fonts

    sudo mkdir fallback

    cd fallback

    sudo ln -s /usr/share/fonts/truetype/wqy/wqy-zenhei.ttf(请按照自己系统中合适的中文字体来进行选择)

    sudo mkfontdir

    sudo mkfontscale

  • 启动Eclipse/netbeans/WTK及其emulator失败

参考:

关于在中文系统Ubuntu 8.04上启动Eclipse/WTK及其emulator失败的解决办法

这些错误/异常是应用WTK及其模拟器采用了Java中的UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 语句来使用系统自身的lookandfeel,而Ubuntu系统中没有安装对应的主题导致的错误。

给出如下解决办法:

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

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

添加后的ktoolbar文件内容如下:

#!/bin/sh

javapathtowtk=/usr/java/jdk1.6.0_05/bin/

PRG=$0

# Resolve soft links

while [ -h "$PRG" ]; do

ls=`/bin/ls -ld "$PRG"`

link=`/usr/bin/expr "$ls" : '.*-> (.*)$'`

if /usr/bin/expr "$link" : '^/' > /dev/null 2>&1; then

PRG="$link"

else

PRG="`/usr/bin/dirname $PRG`/$link"

fi

done

KVEM_BIN=`dirname $PRG`

KVEM_HOME=`cd $...{KVEM_BIN}/.. ; pwd`

KVEM_LIB="${KVEM_HOME}/wtklib"

KVEM_API="${KVEM_HOME}/lib"

export MMAPI_GM_SOUNDBANK="${KVEM_API}/soundbank.dls"

"${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}/JadTool.jar:${KVEM_BIN}/MEKeyTool.jar:${KVEM_LIB}/customjmf.jar:${KVEM_API}/j2me-ws.jar:${KVEM_BIN}/schema2beansdev.jar:${KVEM_BIN}/j2me_sg_ri.jar:${KVEM_BIN}/jaxrpc-impl.jar:${KVEM_BIN}/jaxrpc-api.jar:${KVEM_BIN}/jaxrpc-spi.jar:${KVEM_BIN}/activation.jar:${KVEM_BIN}/mail.jar:${KVEM_BIN}/saaj-api.jar:${KVEM_BIN}/saaj-impl.jar:${KVEM_BIN}/xsdlib.jar:${KVEM_LIB}/nist-sip-1.2.jar:${KVEM_LIB}/JainSipApi1.1.jar:${KVEM_LIB}/jain-sip-presence-proxy.jar"

com.sun.kvem.toolbar.Main "$@"

修改后的emulator文件内容如下:

#!/bin/sh

javapathtowtk=/usr/java/jdk1.6.0_05/bin/

PRG=$0

# Resolve soft links

while [ -h "$PRG" ]; do

ls=`/bin/ls -ld "$PRG"`

link=`/usr/bin/expr "$ls" : '.*-> (.*)$'`

if /usr/bin/expr "$link" : '^/' > /dev/null 2>&1; then

PRG="$link"

else

PRG="`/usr/bin/dirname $PRG`/$link"

fi

done

KVEM_BIN=`dirname "$PRG"`

KVEM_HOME=`cd "${KVEM_BIN}/.." ; pwd`

KVEM_LIB="${KVEM_HOME}/wtklib"

export MMAPI_GM_SOUNDBANK="${KVEM_HOME}/lib/soundbank.dls"

"${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}/customjmf.jar"

com.sun.kvem.environment.EmulatorWrapper "$@" 0

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

  • Eclipse/netbenas启动很慢

    可能性之一:使用了杀毒软件的文件扫描功能(如卡巴)

    解决:在杀毒软件中设置例外,对Eclipse/netbenas程序关闭文件扫描。

    可能性之二:分配给Eclipse/netbenas的内存过少

    解决:修改配置文件

    netbeans.conf

    具体优化方案请参考其他文章。