personal java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_sc.pdf ·...

30
1 Personal Java 程序设计() - Symbian OS Java 程序设计入门 by 王森 Sun Microsystems 教育训练中心 [email protected] 引言 您想用 Java 来设计手机与 PDA 的应用程序,可是嫌 J2ME MIDP 功能太 少,无法让您尽情发挥吗? 笔者建议您试试 Personal JavaPersonal 可以让 您设计的 Java 程序得以在以 Windows CE Symbian OS 为操作系统的机器 上执行,包括市面上已经可以买到的 PocketPCNokia 9210cSonyEricsson P800 都是 Personal Java 可以发挥的范围。 前言 本文将教导如何开发 Symbian 应用程序,Crystal 版的部份,我们采用 Nokia 9210 SDK(中文版/英文版)Quartz(Symbian OS 7.0 之后又称为 UIQ) 的部分,则采用 SonyEricsson P800 SDK本文将专注于基本开发流程与环境设定的探讨,比较深入的程序开发则留待 后面文章。 Symbian OS Crystal SDK 的下载 在撰写本文时,唯一一台使用 Symbian OS Crystal 版的手机只有 Nokia 9210(台湾的型号为 Nokia 9210c,已上市): Nokia 9210c 请注意: 本文中出现之 Java 程序代码,已在 Java 2 SDK 1.4.x 完成测试。所使用的 Ant 版本为最新的 1.5 版。本文所有操作皆在 Windows 2000 Professional XP Professional 中文版操作系统上经过测试。如果您使用的是 Windows 其它版本,我们无法保证会有相同的结果,但基本上应该没有什么太大问题。

Upload: others

Post on 20-Apr-2020

42 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

1

Personal Java 程序设计(三) - Symbian OS Java 程序设计入门

by 王森

Sun Microsystems 教育训练中心 [email protected]

引言 您想用 Java 来设计手机与 PDA 的应用程序,可是嫌 J2ME MIDP 功能太

少,无法让您尽情发挥吗? 笔者建议您试试 Personal Java。Personal 可以让

您设计的 Java 程序得以在以 Windows CE 与 Symbian OS 为操作系统的机器

上执行,包括市面上已经可以买到的 PocketPC、Nokia 9210c、SonyEricsson P800 都是 Personal Java 可以发挥的范围。

前言 本文将教导如何开发 Symbian 应用程序,Crystal 版的部份,我们采用

Nokia 9210 SDK(中文版/英文版),Quartz(Symbian OS 7.0 之后又称为 UIQ)的部分,则采用 SonyEricsson P800 SDK。 本文将专注于基本开发流程与环境设定的探讨,比较深入的程序开发则留待

后面文章。

Symbian OS Crystal 版 SDK 的下载

在撰写本文时,唯一一台使用 Symbian OS Crystal 版的手机只有 Nokia 9210(台湾的型号为 Nokia 9210c,已上市)。 图: Nokia 9210c

请注意: 本文中出现之 Java 程序代码,已在 Java 2 SDK 1.4.x 完成测试。所使用的

Ant 版本为最新的 1.5 版。本文所有操作皆在 Windows 2000 Professional与 XP Professional 中文版操作系统上经过测试。如果您使用的是 Windows其它版本,我们无法保证会有相同的结果,但基本上应该没有什么太大问题。

Page 2: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

2

所以要下载 Symbian OS Crystal 版的 SDK,就须到 Forum Nokia 下载。请开

启浏览器,连接至 Forum Nokia 官方网站(http://www.forum.nokia.com/): 图: Forum Nokia 官方网站

请先注册成为 Forum Nokia 的会员(免费),并使用屏幕右上角的功能进行

登入。然后选择”Tools and SDKs”以进入工具下载区。 图: Forum Nokia 官方开发工具下载区

Page 3: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

3

图: Symbian OS Crystal SDK v6.x 官方开发工具下载网页

Page 4: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

4

请注意,Nokia 9210 SDK 有支持繁体中文的版本。

Symbian OS Quartz 版 SDK 的下载

在撰写本文时,唯一一台使用 Symbian OS Quartz 版的手机只有 Sony Ericsson P800/P802。 图: Sony Ericsson P800

Page 5: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

5

请至 Symbian 官方网站(http://www.symbian.com/): 图: Symbian 官方网站

Page 6: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

6

选择上方的”Developer”以进入程序开发者专属网页。 图: Symbian 程序开发者专属网页

Page 7: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

7

选择中间的”UIQ Java SDK for Symbian”以进入 UIQ Java SDK 下载网页。 图: UIQ Java SDK 下载网页

Page 8: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

8

请移到此网页最下方,选择下载 Symbian OS Quartz SDK v6.x。

Page 9: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

9

图: Symbian OS Quartz SDK v6.x 下载前注册网页

Page 10: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

10

请填妥所需要的数据,在”Which SDKs dos you require?”处选择 Quartz v6.x C++ and Java,最后按下”Submit Form”即可。接着会出现画面: 图: Symbian OS Quartz SDK 下载注册确认网页

Page 11: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

11

系统会将您的 ID 与密码寄到您指定的 e-mail 信箱中。如果您收到了,请点选网

页最底下的”here”(http://www3.symbian.com/dl-sdk.nsf)进行下载工作。 图: 下载 Symbian OS Quartz SDK 前的登录画面

图: 下载 Symbian OS Quartz SDK 下载网页

Page 12: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

12

点选”SDK: Quartz(C++ and Java) v6.1”的连结,就可进行最后的下载工作。

SonyEricsson P800 SDK 的下载

请到 http://www.sonyericsson.com/spg.jsp?template=frameset_dev_zone 或 http://www.ericsson.com/mobilityworld/sub/open/technologies/epoc/

Page 13: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

13

tools/7_uiq 进行下载。

准备事项 Symbian OS 相关 SDK 需要 JDK 与 Perl 的辅助,请在安装 Symbian OS相关 SDK 之前,确认您的计算机上已安装了 JDK 与 ActivePerl。 Tips 仿真器可以帮我们模拟画面,TCP/IP 或 RS232 连结,可以并无法帮我们完全

模拟手机上的情形,例如 DTMF 拨号控制等。 由于 Personal Java 支持 JNI,如果您有用到 JNI,那么必须额外安装 C++版的 SDK

安装 Nokia 9210 SDK 安装时,由于我们已经安装了ActivePerl与新版的JDK,所以请反勾选Java Install。

Page 14: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

14

底下我们假设 SDK 安装于 D:\Symbian\6.0\NokiaJava 目录之中,而 SDK 的

共享档案(C++ SDK 与 Java SDK 共享)则安装在 D:\Symbian\6.0\Shared 目

录底下。

完成安装之后,重新开机即可。

安装 SonyEricsson P800 SDK

Page 15: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

15

底下我们皆假设 SonyEricsson P800 SDK 安装在 d:\Symbian\UIQ_70 幕

路底下:

安装时,由于我们已经安装了 ActivePerl 与新版的 JDK,所以安装程序会

自动帮我们侦测。

请选择安装 UIQ Personal Java SDK、Document、、UIQ MIDP SDK 以及

Example projects 即可。

Page 16: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

16

完成安装之后,不需重新开机就可以直接进行开发

Nokia 9210 SDK 开发环境 安装完成之后,Nokia 9210 SDK 会自动帮我们加入一个名为 EPOCROOT的环境变量。

Page 17: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

17

另外,开始菜单之中会加入一些功能选项,分别在「开始菜单| Programs」

与「开始菜单| 程序集 | Symbian 6.0 SDKs」底下。 Tips 如果您安装的是 Nokia 9210 SDK(中文版/英文版),您会发现在「开始菜单| 程序集 | Symbian 6.0 SDKs | Development tools」之下的工具联结都是有错

的,这些工具的连结其实在「开始菜单| Programs」也有一个。如果您希望

连结是正确的,请修改如下: 底下以 AIF Builder 为例,原本的联结是: “D:\Symbian\6.0\Shared\ splash.exe "aifbuilder\aifbuilder.jar" 请改成 D:\Symbian\6.0\Shared\EPOC32\Tools\splash.exe "aifbuilder\aifbuilder.jar" 即可。

SonyEricsson P800 SDK 开发环境 SonyEricsson P800 SDK 不会在开始菜单之中安装任何选项。 您会发现在<SDK 安装目录>\Documentation 之下的 AppletFrame.html

用到 Applet,而且用过 HTMLConverter 转换,导致非得 JDK 1.3.1_01 的 JRE才能执行。为了解决此问题,请将 AppletFrame.html 的内容改成

AppletFrame.html

Page 18: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

18

<HTML>

<HEAD>

<TITLE>Help Example</TITLE>

</HEAD>

<applet code="com.symbian.sdk.docplugintool.CDocPlugInTool.class"

archive="docplugintool.jar, support/lucene.jar, support/xerces.jar,

support/HTMLParser.jar, support/ShellExec.jar"

width=170 height=150>

</BODY>

</HTML> 即可。这是因为 JDK 1.4.x 之后的 JRE 已经不需要 HTMLConverter 就能执行

Applet。

Nokia 9210 SDK 重要目录 Symbian OS Crystal 仿真器放置在 除错版 <SDK 安装目录>\Epoc32\Release\wins\udeb\Epoc.exe 发行版 <SDK 安装目录>\Epoc32\Release\wins\urel\Epoc.exe Personal Java 仿真器放置在 除错版 <SDK 安装目录>\Epoc32\Release\wins\udeb\pjava_g.exe 发行版 <SDK 安装目录>\Epoc32\Release\wins\urel\pjava.exe Tips 如果您安装的是 Nokia 9210 中文版 SDK,则只能看到除错版的仿真器和

Personal Java 仿真器。 仿真器执行画面:

另外,<SDK 安装目录>\erj 在仿真器之中被模拟成 J:磁盘驱动器,以方便测试,

Page 19: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

19

<SDK 安装目录>\erj\lib 放置了 Personal Java 在执行时期所需要的设定和核

心函式库(font.properties、classes.zip 等)。<SDK 安装目录>\erj\ext 则放置

了 Personal Java在执行时期所需要的扩充函式库(cawt.jar、javaphone.jar)。在开发时期,我们的程序都要放置在<SDK 安装目录>\erj 底下,才能进行测试,

否则仿真器将无法定位到我们所写的 Java 程序。 Tips 实机上并没有,cawt.jar 这个函式库,您可以到 Nokia 网站

http://www.forum.nokia.com/javaforum/main/1,35452,1_0_30_20,00.html 下载 cawtjar.sis,或者到 <SDK 安装目录>\erj\utilities\awt 底下找到 cawt.jar,将他复制到实机上的

Communicator\System\Java\ext 目录底下。 另外,<SDK 安装目录>\erj\tools 底下还有两个工具,分别是 AViewer 和Redirect,将他们安装在实机中可以帮助我们程序的开发。

SonyEricsson P800 SDK 重要目录 Symbian OS UIQ 仿真器放置在 除错版 <SDK 安装目录>\epoc32\release\winscw\udeb\Epoc.exe 发行版 <SDK 安装目录>\epoc32\release\winscw\urel\Epoc.exe Personal Java 仿真器放置在 除错版 <SDK 安装目录>\epoc32\release\winscw\udeb\pjava_g.exe 发行版 <SDK 安装目录>\epoc32\release\winscw\urel\pjava.exe <SDK 安装目录>\epoc32\java\lib 放置了 Personal Java 在执行时期所需要

的设定和核心函式库(font.properties、classes.zip 等)。 <SDK安装目录>\epoc32\java\ext则放置了Personal Java在执行时期所需

要的扩充函式库(qawt.jar、util.jar、javaphone.jar)。

Page 20: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

20

Tips 注意,qawt.jar 与 util.jar 预设并没有放置在 <SDK 安装目录>\epoc32\java\ext 底下,请到 <SDK 安装目录>\epoc32\etj\Ext 目录下,将这两个档案复制到 <SDK 安装目录>\epoc32\java\ext 底下 在使用 UIQ SDK 之前,请先设定 _epoc_drive_j 环境变量,使他映像到<SDK安装目录>\epoc32\java\,

在开发时期,我们的程序都要放置 _epoc_drive_j 环境变量所对应的目录底

下,才能进行测试,否则仿真器将无法定位到我们所写的 Java 程序。 Tips 实机上并没有,qawt.jar 与 util.jar 这两个函式库, <SDK 安装目录>\erj\utilities\Awt\arm 底下找到 QAWT.sis <SDK 安装目录>\erj\utilities\util\arm 底下找到 QUtil.sis 将他们安装在实机中。

Nokia 9210 SDK 开发入门 我们将以前面章节的范例做基础,修改 build.properties 与 build.xml 如下:

build.properties #此文件用来设定一些常用属性

#专案名称

name=crystalapp

#合成后 JAR 的檔名

jar=${name}.jar

#原始文件所在路径

src.dir=src

#资源文件所在路径

res.dir=res

Page 21: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

21

#建构产物置放位置

build.dir=build

#编译后类别文件的放置位置

build.dir.classes=${build.dir}/classes

#JAR 的最终放置位置

build.dir.bin=${build.dir}/bin

#未经过混淆的 JAR 檔名

build.dir.bin.jarunobfus=${build.dir.bin}/${name}-unobfus.jar

#经过混淆的 JAR 檔名

build.dir.bin.jar=${build.dir.bin}/${jar}

#Symbian SDK 所在路径

symbian.home=d:/Symbian/6.0/NokiaJava

#Symbian 相关 Java Library

symbian.home.erj=${symbian.home}/erj

symbian.lib.core=${symbian.home}/erj/lib/classes.zip

symbian.lib.cawt=${symbian.home}/erj/ext/cawt.jar

symbian.lib.javaphone=${symbian.home}/erj/ext/javaphone.jar

#Symbian 仿真器

symbian.emu.dbg=${symbian.home}/Epoc32/Release/wins/udeb/Epoc.exe

symbian.emu.rel=${symbian.home}/Epoc32/Release/wins/urel/Epoc.exe

symbian.pjava.dbg=${symbian.home}/Epoc32/Release/wins/udeb/pjava_g.exe

symbian.pjava.rel=${symbian.home}/Epoc32/Release/wins/urel/pjava.exe

#混淆器与控制档

obfuscator.lib=retroguard.jar

obfuscator.script=script.rgs

build.xml

<?xml version="1.0" encoding="Big5"?>

<project name="Symbian Crystal 入门" default="all" basedir=".">

<!-- 引入位于 build.properties 之中的常用属性 -->

<property file="build.properties"/>

<target name="prepare" description="准备工作">

<mkdir dir="${build.dir}"/>

<mkdir dir="${build.dir.classes}"/>

Page 22: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

22

</target>

<target name="cleandir" description="清除目录">

<delete dir="${build.dir}"/>

</target>

<target name="compile" description="编译原始码" depends="prepare">

<javac debug="off"

bootclasspath="${symbian.lib.core}"

classpath="${symbian.lib.cawt};${symbian.lib.javaphone}"

srcdir="${src.dir}"

destdir="${build.dir.classes}"

target="1.1"

/>

</target>

<target name="package" description="包装成 JAR 檔" depends="compile">

<mkdir dir="${build.dir.bin}"/>

<jar basedir="${build.dir.classes}"

jarfile="${build.dir.bin.jarunobfus}"

manifest="MANIFEST.MF">

<fileset dir="${res.dir}"/>

</jar>

</target>

<target name="obfuscate" description="使用混淆器" depends="package">

<java fork="yes" classname="RetroGuard"

classpath="${obfuscator.lib};${symbian.lib.core};${symbian.lib.cawt};

${symbian.lib.javaphone}">

<arg line="${build.dir.bin.jarunobfus}"/>

<arg line="${build.dir.bin.jar}"/>

<arg line="${obfuscator.script}"/>

</java>

</target>

<target name="all" description="完成所有程序" depends="cleandir,obfuscate" />

<target name="runemudbg">

<exec executable="${symbian.emu.dbg}"/>

</target>

<target name="runemurel">

<echo message="注意,使用 Nokia 9210 SDK 中文版请勿使用此 target"/>

Page 23: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

23

<exec executable="${symbian.emu.rel}"/>

</target>

<target name="runpjavadbg_class">

<exec executable="${symbian.pjava.dbg}">

<arg line="-cd j:\m5\build\classes Main"/>

</exec>

</target>

<target name="runpjavadbg_jar">

<exec executable="${symbian.pjava.dbg}">

<arg line="-cp j:\m5\build\bin\${jar} Main"/>

</exec>

</target>

<target name="runpjavarel_class">

<echo message="注意,使用 Nokia 9210 SDK 中文版请勿使用此 target"/>

<exec executable="${symbian.pjava.rel}">

<arg line="-cd j:\m5\build\classes Main"/>

</exec>

</target>

<target name="runpjavarel_jar">

<echo message="注意,使用 Nokia 9210 SDK 中文版请勿使用此 target"/>

<exec executable="${symbian.pjava.rel}">

<arg line="-cp j:\m5\build\bin\${jar} Main"/>

</exec>

</target>

</project>

最后,由于 Nokia 9210c 本身自型设定的问题,导致 Java 程序无法显示

中文,为了解决此问题,我们必须自行在程序之中设定字型,请修改 Main.java如下:

Main.java import java.awt.*;

public class Main

{

public static void main(String args[])

Page 24: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

24

{

Frame f = new Frame("窗口") ;

f.setFont(new Font("monospaced", Font.PLAIN, 10));

f.setSize(200,200) ;

f.addWindowListener(new MyAdapter()) ;

Button btn = new Button("按下我") ;

btn.addActionListener(new MyHandler()) ;

f.add(btn) ;

f.show() ;

}

}

请输入 ant 或 ant all 完成 Java 程序的制作流程。 要执行我们所制作的程序,有两种方法,第一种是直接启动仿真器,然后再

进到 J:磁盘驱动器之中,直接选取 Main.class 即可执行,请使用 ant runemudbg 或 ant runemurel 启动仿真器。 第二种方法必须藉助 Personal Java 仿真器,我们可以给定类别文件所在

目录或是一个 JAR 文件作为输入,再给定主类别的名称。请使用 ant runpjavadbg_class、ant runpjavadbg_jar、ant runpjavarel_class 或 ant runpjavarel_jar 来启动 Personal Java 仿真器。 Tips 如果我们使用 Personal Java 仿真器来执行我们的程序,仿真器启动之后我们

无法看到我们的程序,这是因为我们的程序被其它程序盖掉了,请同时按下

Ctrl+Alt+Shift+K,即可关闭其它程序,关掉几个程序之后就能看到我们的程序。 程序执行画面如下:

当我们按下按钮之后,仿真器就会自动关闭。

Page 25: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

25

SonyEricsson P800 SDK 开发入门 我们将以前面章节的范例做基础,修改 build.properties 与 build.xml 如下:

build.properties #此文件用来设定一些常用属性

#专案名称

name=uiqapp

#合成后 JAR 的檔名

jar=${name}.jar

#原始文件所在路径

src.dir=src

#资源文件所在路径

res.dir=res

#建构产物置放位置

build.dir=build

#编译后类别文件的放置位置

build.dir.classes=${build.dir}/classes

#JAR 的最终放置位置

build.dir.bin=${build.dir}/bin

#未经过混淆的 JAR 檔名

build.dir.bin.jarunobfus=${build.dir.bin}/${name}-unobfus.jar

#经过混淆的 JAR 檔名

build.dir.bin.jar=${build.dir.bin}/${jar}

#Symbian SDK 所在路径

symbian.home=d:/Symbian/UIQ_70

#Symbian 相关 Java Library

symbian.home.erj=${symbian.home}/epoc32/Java

symbian.lib.core=${symbian.home}/epoc32/Java/lib/classes.zip

symbian.lib.qawt=${symbian.home}/epoc32/Java/ext/qawt.jar

symbian.lib.util=${symbian.home}/epoc32/Java/ext/util.jar

symbian.lib.javaphone=${symbian.home}/epoc32/Java/ext/javaphone.jar

#Symbian 仿真器

symbian.emu.dbg=${symbian.home}/epoc32/release/winscw/udeb/EPOC.exe

Page 26: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

26

symbian.emu.rel=${symbian.home}/epoc32/release/winscw/urel/EPOC.exe

symbian.pjava.dbg=${symbian.home}/epoc32/release/winscw/udeb/pjava_g.exe

symbian.pjava.rel=${symbian.home}/epoc32/release/winscw/urel/pjava.exe

#混淆器与控制档

obfuscator.lib=retroguard.jar

obfuscator.script=script.rgs

build.xml

<?xml version="1.0" encoding="Big5"?>

<project name="Symbian UIQ 入门" default="all" basedir=".">

<!-- 引入位于 build.properties 之中的常用属性 -->

<property file="build.properties"/>

<target name="prepare" description="准备工作">

<mkdir dir="${build.dir}"/>

<mkdir dir="${build.dir.classes}"/>

</target>

<target name="cleandir" description="清除目录">

<delete dir="${build.dir}"/>

</target>

<target name="compile" description="编译原始码" depends="prepare">

<javac debug="off"

bootclasspath="${symbian.lib.core}"

classpath="${symbian.lib.qawt};${symbian.lib.util};${symbian.lib.javaphone}"

srcdir="${src.dir}"

destdir="${build.dir.classes}"

target="1.1"

/>

</target>

<target name="package" description="包装成 JAR 檔" depends="compile">

<mkdir dir="${build.dir.bin}"/>

<jar basedir="${build.dir.classes}"

jarfile="${build.dir.bin.jarunobfus}"

manifest="MANIFEST.MF">

<fileset dir="${res.dir}"/>

Page 27: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

27

</jar>

</target>

<target name="obfuscate" description="使用混淆器" depends="package">

<java fork="yes" classname="RetroGuard"

classpath="${obfuscator.lib};${symbian.lib.core};${symbian.lib.qawt};

${symbian.lib.util};${symbian.lib.javaphone}">

<arg line="${build.dir.bin.jarunobfus}"/>

<arg line="${build.dir.bin.jar}"/>

<arg line="${obfuscator.script}"/>

</java>

</target>

<target name="all" description="完成所有程序" depends="cleandir,obfuscate" />

<target name="runemudbg">

<exec executable="${symbian.emu.dbg}"/>

</target>

<target name="runemurel">

<exec executable="${symbian.emu.rel}"/>

</target>

<target name="runpjavadbg_class">

<exec executable="${symbian.pjava.dbg}">

<arg line="-cd j:\uiq\build\classes Main"/>

</exec>

</target>

<target name="runpjavadbg_jar">

<exec executable="${symbian.pjava.dbg}">

<arg line="-cp j:\uiq\build\bin\${jar} Main"/>

</exec>

</target>

<target name="runpjavarel_class">

<exec executable="${symbian.pjava.rel}">

<arg line="-cd j:\uiq\build\classes Main"/>

</exec>

</target>

<target name="runpjavarel_jar">

<exec executable="${symbian.pjava.rel}">

Page 28: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

28

<arg line="-cp j:\uiq\build\bin\${jar} Main"/>

</exec>

</target>

</project>

最后,由于 P800 SDK 并非中文版,所以 Java 程序无法显示中文,请修改

Main.java 为英文版如下: Main.java

import java.awt.*;

public class Main

{

public static void main(String args[])

{

Frame f = new Frame("Test Window") ;

f.setSize(200,200) ;

f.addWindowListener(new MyAdapter()) ;

Button btn = new Button("Click Me") ;

btn.addActionListener(new MyHandler()) ;

f.add(btn) ;

f.show() ;

}

}

请输入 ant 或 ant all 完成 Java 程序的制作流程。 要执行我们所制作的程序,只有一种方法,就是藉助 Personal Java 仿真

器,我们可以给定类别文件所在目录或是一个 JAR 文件作为输入,再给定主类

别的名称。请使用 ant runpjavadbg_class、ant runpjavadbg_jar、ant runpjavarel_class 或 ant runpjavarel_jar 来启动 Personal Java 仿真器。 Tips 如果我们使用 Personal Java 仿真器来执行我们的程序,仿真器启动之后我们

无法看到我们的程序,这是因为我们的程序被其它程序盖掉了,请同时按下

Ctrl+Alt+Shift+K,即可关闭其它程序,关掉几个程序之后就能看到我们的程序。 在 UIQ SDK 中,如果我们使用除错版的仿真器,我们还可以使用

Ctrl+Alt+Shift+T 启动工作变换器(TaskList),选择我们的应用程序来执行:

Page 29: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

29

选择 Main,然后点选 Go to file 即可。 程序执行画面如下:

当我们按下按钮之后,仿真器就会自动关闭。

Page 30: Personal Java 程序设计 - pudn.comread.pudn.com/downloads4/ebook/15014/pjava_3_SC.pdf · 2003-07-14 · 1 Personal Java 程序设计(三) - Symbian OS Java 程序设计入门 by

30

结语 本文以Nokia 9210c与 SonyEricsson P800做例子,分别介绍 Symbian OS Crystal 版与 Quartz(UIQ)版 Java 程序的开发。下一次,笔者将为各位介绍更

进阶的 Symbian OS Java 程序设计,咱们下次见。