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



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

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