1 引 言随着通讯技术的发展及手机的普及,人们正在不断地给手机增加新的功能,其中,使手机实现一般只有PC机才具有的功能--下载各种程序并运行,是目前手机发展的一个重要方向。为此,人们提出了各种各样的解决方案,其中基于JAVA的J2ME方案无疑是最引人注目的。JAVA语言由于其平台无关、开放、网络功能强、面向对象、安全等特点,一经SUN公司提出,就随着Internet的发展而风靡全世界,在国外已成为软件开发人员的必修语言。特别是他的"一次编写、到处运行"的跨平台优点,对于手机领域来说更具有重要的意义。因为目前手机的种类繁多,各种厂商都有自己的标准,如何使他们能运行同一种标准的程序成为必须要解决的问题。采用JAVA语言后,各种手机只要实现JAVA虚拟机(JVM)就可以运行JAVA程序,这种方法可以说是目前情况下最为理想的一种解决方案。J2ME(JAVA 2 Micro Edition)是用于嵌入式系统的JAVA,他是SUN公司对标准的JAVA版本J2SE做了最大程度的精简后得到的一种JAVA应用程序运行环境,在最简单的情况下他只有几十kB,特别适合在手机、PDA等设备中使用。手机厂商如果在自己的手机中实现了J2ME规范,就可以从网络下载并运行JAVA程序,从而大大扩展了手机的功能。鉴于JAVA在Internet上取得的巨大成功,我们有理由相信,J2ME能够把这种成功延伸到手持设备领域,为将来的手机和互联网融为一体提供有利的条件。JAVA手机的出现也给软件行业提供了新的机遇,能否给JAVA手机提供足够多的软件资源是关系到其能否推广的重要因素之一。本文对J2ME构架做一个简单的介绍,并通过一个具体的程序例子来说明JAVA手机程序的特点及开发过程。2 J2ME概述J2ME是一种新的、非常小的JAVA应用程序运行环境,他所定义的构架主要用于在手持式设备上推广使用JAVA技术。SUN公司将为各种硬件规模的设备提供合适的配置,这些配置包括虚拟机、核心类库及API。目前,J2ME定制了2种配置:CLDC(Connected Limited Devices Configuration)和CDC(Connected Device Configuration)。其中,CLDC是为手机等CPU和内存资源远低于标准JAVA要求的设备所提供的一种配置,他是对JAVA标准版本做了最大程度的缩减后得到的,其虚拟机和核心类库多于100kB。CDC配置主要用于拥有更多资源的下一代设备。CLDC配置给各种手持设备提供了能运行JAVA程序的一种环境,但开发者还很难在这种环境下开发程序,首先因为CLDC核心库提供的是低级API,不适合直接用于构建应用程序;其次,手持设备的系统结构千差万别,很难保证应用程序的图形界面、网络等功能的移植性。因此,为了进一步增强J2ME的功能,SUN公司允许设备供应商在实现CLDC的基础上再为自己的设备提供专门的高级API及程序管理方法,即PROFILE,以简化应用程序的开发,使程序有更好的移植性。同时,SUN公司还与50多家知名的移动设备制造商及软件开发商一起,制订了专门用于手机等移动信息设备的PROFILE--MIDP (MobileInformation Device PrOfile),由于MIDP提供了编写图形界面、网络程序的统一规范,并实现动态、安全的程序管理方法,因此得到了诺基亚、摩托罗拉、西门子等主要手机厂商的支持,纷纷推出了基于MIDP的JAVA手机。与APPLET相似,MIDP程序也称为MIDlet,他必须要继承一个特定的类--MIDlet,这样MIDlet管理者才能控制他的运行。这个类包含了startApp,pauseApp,destoryApp三个用户可以重载的方法,分别在MIDlet进入运行状态、停止运行、退出时调用。MIDP程序的图形接口相对于标准JAVA的AWT接口要简单得多,他分为低级API和高级API。低级图形API使开发者能更直接地控制屏幕显示和键盘输入,他基于抽象类Canvas,一般用于编写游戏程序,他的可移植性要由开发者自己保证。高级图形API能在不同设备之间有很好的可移植性,但开发者能调整的余地也相应地很小,他基于抽象类Screen,并有
Alert,Form,List,TextBox四个具体的子类,这4个子类分别表示警示框、表单、列表框、文本输入框。另外,高级API还提供了许多图形组件,包括Command,ChoiceGroup, DateFie1d, Gauge, ImageItem,StingItem,TextField等,他们都可以添加到A1ert和
Form中。有些图形组件还提供了与AWT相似的事件及事件响应处理方式。MIDP程序一般要和各种资源文件一起压缩成一个jar文件。发布时,还需要有一个扩展名为jad的描述文件,他包含了MIDP程序的名称、版本、jar文件的位置及大小等信息。JAVA手机首先要访问的是描述文件,再根据描述文件的信息把MIDP程序安装到本手机,然后才能运行。3 开发实例MIDP程序真实的运行环境是JAVA手机,但他的开发却是在PC机上进行的,因此开发环境一般都提供仿真器对程序进行测试。各种手机厂商都有自己的开发、测试环境,下面介绍的例子程序,是在SUN公司的MIDP实现中调试通过的。31 程序功能本例子包含2个MIDP程序,第1个程序运行时要求用户输入姓名,并选择性别,然后程序根据性别和当前时间向用户输出一句问候语。第2个程序运行时让用户选择名称,然后把这幅在屏幕上显示出来。这2个MIDP程序由同一个描述文件描述。32 程序源代码及注释321 第1个MIDP程序(samplel.java)import javax.microedition.midlet.MIDlet;import javax.microedition.1cdui.;import java.util.; //任何MIDP程序都要继承MIDlet类,为了处理按钮命令,还要实现了CommandListener接口public class samplel extends MIDlet implements CommandListener{private TextBox input; //声明文本输入框private Form select; //声明表单,用于放置各种图形组件private Alert output //声明警示框Command cfl,cf2,ct,ca; //声明各种命令按钮ChoiceGroup sex; //声明选择框Display display=null; //声明屏幕显示对象public samplel(){input =new TextBox("请输入您的姓名:",null,8,TextField.ANY); //创建文本输入框ct=new Command("OK",Command.SCREEN,1); //创建按钮ctinput.addCommand(ct); //把按钮加到文本输入框input.setCommandListener(this);//设置按钮事件处理类select=new Form("请选择性别:"); //创建表单String[]str={"男","女"};sex=new ChoiceGroup(null,ChoiceGroup.EXCLUSIVE,str,null); //创建单选框,select.append(sex) //把单选择框加入表单cfl=new Command("OK",Command.SCREEN,1);//创建2个按钮cf1和cf2cf2=new Command("回退",Command.BACK,2);select.addCommand(cf1); //把2个按钮加到表单select.addCommand(cf2);select.setCommandListener(this) //设置按钮事件处理类output=new Alert("问候;","您好1",null,null);//创建警示框output.setTimeout(Alert.FOREVER);//设置超时为永远ca=new Command("退出",Command.EXIT,1);//创建按钮ca outputaddCommand(ca); //把按钮ca加到警示框outputsetCommandListener(this); //设置按钮事件处理类} public void startApp() //该方法在该MIDlet得到执行权时调用{if(display==null) display=Display·getDisplay(this);//从系统得到这个MIDlet的屏幕显示对象display·setCurrent(input);//把文本输入框input显示在屏幕
}public void pauseApp() {}//该方法在该MIDlet失去执行权时调用public void destroyApp(boolean unconditional)
//该方法在该MIDlet退出时调用
{
input=null; output=null;select=null;
}//commandAction方法是CommandListener接口中定义的按钮事件处理方法public void commandAction(Command c,Displayable d){if(c==ct) //如果按了ct按钮displaysetCurrent(select); //则把表单select显示在屏幕if(c==cfl) { //如果按了cfl按钮 Calendar rightNow = CalendargetInstance();//得到当前时间int ti=rightNowget(CalendarHOUR_OF_DAY);
//得到当前时间的小时数(24小时制)int indx=sexgetSelectedIndex();
//得到用户在单选框中所选的项目号String helo= null;String name=input·getString();//得到用户在文本框中输入的字符串//以下4句根据ti和indx的值构建不同的字符串heloif(ti>=12&&indx==1)helo="上午好!"+name+"**";if(ti>=12&&indx==0 helo="上午好!"+name+"先生";if(ti<12&&indx==1) helo="下午好!"+name+"**";if(ti<12&&indx==0 helo="下午好!"+name+"先生";output.setString(helo);//在警示框中加入字符串helodisplay·setCurrent(output);//把警示框output显示在屏幕}if(c==cf2 //如果按了cf2按钮displaysetCurrent(input);//则把把文本输入框input显示在屏幕if(c==ca) { //A0果按了ca按钮,则调用destroyApp方法退出destroyApp(true);notifyDestroyed();
}}
}3.2.2 第2个MIDP程序(sample2.java)import javax.microedition.midlet.MIDlet;import javax.microedition.1cdui.;public class sample2 extends MIDlet implementsCommandListener
{private Form form;private List list' //声明列表框Command cl=null;Display display=null;String[]dd={"图像1","图像2","图象3"};public sample2(){list=new List("Test List,ChoiceEXCLUSIVE,dd,null);cl=new Command("OK",CommandSCREEN,1);listaddCommand(cl);listestCommandListener(this);}
public void startApp(){display=Display·getDisplay(this);display·setCurrent(1ist);}
public void pauseApp() {}public void destroyApp(boolean unconditional){ list=null; }public void commandAction(Command c,Displayable d)
{ Image aa=null; //声明图像对象aaif(c==cl) { //用户按了cl按钮int i=list·getSelectedIndex();//得到用户在列表框中所选的项目号 try{//创建图象对象,图象文件为tlpng,t2png或t3png,要和类一起压缩在jar包中aa=ImagecreateImage("/t"+(new Integer(i+l))toString()+"png");
}catch(Exception e){}Form f=new Form("Test"); //创建表单ffappend(aa); //在表单中加入图像display·setCurrent(f);//把表单显示在屏幕上} }}
3.2.3 描述文件内容(sample.jad)MIDlet-1;Hello,,samplel//声明第1个MIDlet程序,显示名为Hello,类名为samplelMIDlet-2:Image,,sample2//声明第2个MIDlet程序,显示名为Image,类名为sample2MIDlet-Description:Sample application //对MIDlet的描绘MIDlet-Jar-Size:11640//Jar包的字节数,要根据实际情况修改MIDlet-Jar-URL:sample.jar//Jar包的位置及名字,位置省略时表示与jad文件在同一位置MIDlet-Name:MySamples //MIDlet的名字MIDlet-Vendor:Sun Microsystems //供应商名字MIDlet-Version:1.0 //MIDlet版本3.3 开发过程(WindOWS 2000平台下)(1)从SUN公司的网站下载MIDP2.0版(http:va.sun.com/prOducts/midp),并解压到c:\midp2.0fcs(2)从SUN公司的网站下载JAVA标准版开发工具JDKl.3.1,安装在c:\jdkl.3(3)建一工作目录,并把上述3个文件存人该目录(4)另外再找3个图像文件,转化为png格式后以tl.png,t2.png,t3.png的名字存入工作目录(5)进入MS-DOS方式,转入工作目录,设置以下环境变量:set MIDP_HOME=c:\xmidp2.Ofcsset PATH=c:\jdkl.3\bin;c:\midp2.Ofcs\binset classpath=c:\midp2.Ofcs\classes
(6)编译2个JAVA文件:javac java(7)用以下命令预先检查2个类:preverify-d.sample1preverify-d.sample2(8)把有关文件打成1个包:jar-CVf sample.jar .pag(9)在仿真器中运行:midp-C1asspath.sample.jar-descriptor sam
ple.jad在完成仿真后,可以把sample.jadd和sample.jad放在某一网站,并用以下命令测试: midp-install http://<网络地址及路径>/sample.jad//下载并安装midp-run 1 //运行,1表示所安装的第1个MIDlet注:①网站的Web服务器要把jadd文件的MIME类型设为text/Vnd.sun.j2me.app-descriptor,jar文件的MIME类型设为applicatiOn/java-archive;②若sample.jad和sample.jar放在不同位置,则sample.jad中的MIDlet-Jar-URL属性要相应修改;③可以输入midp命令,然后用图形界面进行操作。4 结 语MIDP API还提供了HttpConnection类,利用他可以很方便地与互联网的网站进行交互,从而编写出功能很强的网络程序。随着JAVA手机的普及,迫切需要大量的应用程序资源,各大手机厂商也给开发者提供了非常方便的开发工具,相信MIDP程序的开发在不久的将来能很快地流行起来。
http://iasksinacomcn/b/16090400html
这个网址
1 安装 JDK
这里假设下载后的 JDK 安装文件名称是 jdk-1_5_0_06- windows-i586-pexe ,双击这个文件可以开始程序的安装。开始的第一步是同意使用条款,接着则开始安装 JDK 。在安装 JDK 时可以选择安装的项目,如图 2-3 所示,依次是开发工具 (Development Tools) 、演示程序 (Demos) 、 API 源代码 (Source Code) 与公用 JRE(Public JRE) 。开发工具是必需的,范例程序可供您日后编写程序时参考, API 源代码可以让您了解所使用的 API 实际上是如何编写的,而 JRE 则是执行 Java 程序所必要的,所以这 4 个项目基本上都必须安装。
图 2-3 安装 JDK 的画面
要注意的是图 2-3 下面的“安装到”,应记下 JDK 安装的位置,默认是 C:\Program Files\Java\jdk150_06\ ,待会需要使用到这个信息。如果想改变安装目的地,可以单击“更改”按钮来改变,接着单击“下一步”按钮就开始进行 JDK 的安装。完成 JDK 的安装之后,接着会安装“公用 JRE ”。
同样地应留意图 2-4 下方的“安装到”,了解 JRE 的安装地址,默认是 C:\Program Files\Java\jre150_06\ 。单击“下一步”按钮之后,会询问哪些浏览器要使用 Java Plug-In ,这让您的浏览器可以执行 Java Applet 。选择要支持 Java Plug-In 的浏览器之后,单击“下一步”按钮可以开始安装公用 JRE 。
图 2-4 安装 JRE 的画面
2设置 Path 与 Classpath
对于习惯图形化接口操作的初学者而言,在命令符模式下执行程序是一件陌生的事,也因此不了解 Path 路径设置的方法与作用,而 Java 执行的平台也有自己的一套路径规则来寻找编写好的 Java 类,也就是所谓的 Classpath 设置。本节将介绍如何进行这些相关的设置。
21 设置 Path
在安装好 JDK 程序之后,在 JDK 安装目录 ( 假设是 C:\Program Files\Java\jdk150_06) 下的 bin 目录中,会提供一些开发 Java 程序时必备的工具程序。对于 Java 的初学者,建议从命令符模式 ( 在 Windows 2000/XP 下称之为命令提示符 ) 下来操作这些工具程序。您可以在 Windows 2000/XP 的“开始”菜单中选择“运行”,输入“ cmd ”命令来打开命令符模式。
虽然您知道 JDK 的工具程序是位于 bin 目录下,但您的操作系统并不知道如何找到这些工具程序。所以当您输入 javac 尝试执行编译程序时,命令符模式下会告诉您找不到 javac 工具程序,如图 2-8 所示。
图 2-8 出现这个信息表示找不到指定的工具程序
您必须告诉操作系统,应该到哪些目录下尝试找到您所想使用的工具程序。有几个方法可以进行这项设置,最简便的方法就是设置系统变量中的 Path 环境变量。在 Windows 2000/XP 下可以选择桌面上的“我的电脑”并单击鼠标右键,选择“属性”后切换至“高级”页面,并单击下方的“环境变量”按钮,在“环境变量”对话框中编辑 Path 变量,如图 2-9 所示。
图 2-9 选择 Path 变量并单击“编辑”按钮以进行路径设置
如图 2-10 所示,在 Path 变量的“编辑系统变量”对话框中,在“变量值”文本框中先输入一个“ ; ”,接着输入 JDK bin 目录的路径 ( 这里假设是 C:\Program Files\Java\jdk150_06\bin) ,然后单击“确定”按钮即可完成设置。
图 2-10 在 Path 变量中加入 JDK 的 bin 目录路径
设置 Path 变量之后,要重新打开一个命令符模式才能重新读入 Path 变量内容,接着如果执行 javac 程序,应该可以看到图 2-11 所示的画面。
图 2-11 若设置 Path 变量成功,就可以找到指定的工具程序
也可以在命令符模式下执行以下的命令,直接设置目前的环境变量,包括 Path 变量 ( 这个设置在下次重新打开命令符模式时就不再有效 ) :
set Path=%Path%;C:\Program Files\Java\jdk150_06\bin由于以上介绍的 Path 设置都是寻找 JDK 安装目录下的 bin 目录,所以操作系统会搜索 JDK 安装目录下的工具程序。这样当执行 java 程序时,默认会使用 JDK 所附的 JRE( 即 C:\Program Files\Java\jdk150_06\jre) ,而不是公用的 JRE( 即 C:\Program Files\Java\jre150_06\) 。
简单地说,操作系统会尝试在指定的 Path 变量中寻找指定的工具程序。当输入 javac 命令时,由于 Path 变量中有设置 JDK 的 bin 目录的路径,操作系统就可以根据这个信息来找到 javac 工具程序。
22 设置 Classpath
Java 执行环境本身就是一个平台,执行于这个平台上的程序是已编译完成的 Java 程序 ( 后面会介绍到 Java 程序编译完成之后,会以 class 文件存在 ) 。如果将 Java 执行环境比喻为操作系统,如果设置 Path 变量是为了让操作系统找到指定的工具程序 ( 以 Windows 来说就是找到 exe 文件 ) ,则设置 Classpath 的目的就是让 Java 执行环境找到指定的 Java 程序 ( 也就是 class 文件 ) 。
有几个方法可以设置 Classpath ,最简单的方法是在系统变量中新增 Classpath 环境变量。在图 2-9 中的“系统变量”下单击“新建”按钮,在“变量名”文本框中输入 Classpath ,在“变量值”文本框中输入 Java 类文件的位置。例如可以输入“ ;C:\Program Files\Java\jdk150_06\lib\toolsjar; C:\Program Files\Java\jdk150_06\lib\rtjar ” (jar 文件是 zip 压缩格式,其中包括 class 文件和 jar 中的 Classpath 设置 ) ,每一路径中间必须以 ; 作为分隔。
事实上 JDK 50 默认就会到当前工作目录 ( 上面的 设置 ) ,以及 JDK 的 lib 目录 ( 这里假设是 C:\Program Files\Java\jdk150_06\lib) 中寻找 Java 程序。所以如果 Java 程序是在这两个目录中,则不必设置 Classpath 变量也可以找得到,将来如果 Java 程序不是放置在这两个目录时,则可以按上述设置 Classpath 。
如果所使用的 JDK 工具程序具有 Classpath 命令选项,则可以在执行工具程序时一并指定 Classpath 。例如:
javac -classpath classpath1;classpath3…其中 classpath1 、 classpath 2 是实际要指定的路径。也可以在命令符模式下执行以下的命令,直接设置目前的环境变量,包括 Classpath 变量 ( 这个设置在下次重新打开命令符模式时就不再有效 ) :
set CLASSPATH=%CLASSPATH%;classpath1;classpath3…总而言之,设置 Classpath 的目的,在于告诉 Java 执行环境,在哪些目录下可以找到您所要执行的 Java 程序。
jdk安装教程如下:
工具:小米笔记本AIR13、Windows7、Java SDK180。
1、拿到安装包后,直接双击exe文件,然后点击更改,建议不要默认的安装到C盘,把jdk安装到D盘或者其他盘。
2、以下是我安装到D盘新健一个文件名为java的文件(注意,由于我们安装jdk的时候也把jdk和ire分开,这里建议在java文件下再新建一个名字为jdk180的文件和名字为jre180的文件,目录选择文件jdk180)。
3、继续点击下—步,就会出现以下安装进度条,耐心等待进度条到满。
4、这已经说明jdk安装成功了,然后点击关闭就可以。
5、这里给大家做一个测试,我在电脑直接打开CMD,输入javac的时候显示命令没有用。
6、在刚刚安装的jdk180文件名下有一个名字为bin的目录,在这里打开cmd再敲击javac命令的话就可以使用。
欢迎分享,转载请注明来源:品搜搜测评网