快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

编写跨平台JAVA程序注重事项

---- 使用Java语言编写应用程序最大的长处在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相称一部分的Java程序是不能在别的操作系统上准确运行的,那么如何才能编写一个真正的跨平台的Java程序呢?下面是在编写跨平台的Java程序是需要注重的一些事情:

---- 1. 编写Java跨平台应用程序时,你可以选择JDK1.0,1.1,1.2或支持它们的GUI开发工具如:Jbuilder,Visual Age for Java 等等,但是必须注重你的Java程序只能使用Java核心API包,假如要使用第三方的类库包,则该类库包也要由Java核心包开发完成,否则在发布你的程序的时候还得将支持该Java类库包的JVM发布出去。也就是说,你的程序需要是100%纯Java的。举一个例子,Visual J++ 就不是纯Java的,由Visual J++编写的程序也就不具有平台无关性。

---- 2. 无论你使用的是JDK或其他开发工具,在编译时都要打开所有的警告选项,这样编译器可以尽可能多的发现平台相关的语句,并给出警告。虽然不能保证没有编译时警告错误的程序一定是跨平台的,但含有警告错误的程序却很有可能是非平台无关的。

---- 3. 在程序中使用任何一个方式的时候,要具体察看文档,确保你使用的方式不是在文档中已经申明为过时的方式(Deprecated method),也不是文档中未标明的隐含方式(Undocumented method)。

---- 4. 退出Java程序时尽量不要使用java.lang.System的exit方式。Exit 方式可以终止JVM,从而终止程序,但假如同时运行了另一个Java程序,使用exit方式就会让该程序也关闭,这显然不是我们希望看到的情况。事实上要退出Java程序,可以使用destory()退出一个独立运行的过程。对于多线程程序,必须要关闭各个非守护线程。只有在程序非正常退出时,才使用exit方式退出程序。

---- 5. 避免使用本地方式和本地代码,尽可能自己编写具有相应功能的Java类,改写该方式。假如一定要使用该本地方式,可以编写一个服务器程序调用该方式,然后将现在要编写的程序作为该服务器程序的客户程序,或者考虑CORBA(公共对象哀求代理)程序结构。

---- 6. Java中有一个类似于Delphi中的winexec的方式,java.lang.runtime类的exec方式,作为该方式本身是具有平台无关性的,但是给方式所调用的命令及命令参数却是与平台相关的,因此,在编写程序时要避免使用,假如一定要调用其他的程序的话,必须要让用户自己来设置该命令及其参数。比如说,在windows中可以调用notepad.exe程序,在linux 中就要调用vi程序了。

---- 7. 程序设计中的所有的信息都要使用ASCII码字符集,因为并不是所有的操作系统都支持Unicode字符集,这对于跨平台的Java中文软件程序不能不说是一大噩耗。

---- 8. 在程序中不要硬性编码与平台相关的任何常量,比如行分隔符,文件分隔符,路径分隔符等等,这些常量在不同的平台上是不同的,比如文件分隔符,在UNIX和MAC中是“/”,在windows中是“”,假如要使用这些常量,需要使用jdava.util.Properties类的getProperty方式,如java.util.Properties.getProperty(“file.separator”)可以获得文件分隔符,getProperty (“line.separator”)返回行分隔符,getProperty(“path.separator”)返回路径分隔符。

---- 9. 在编写跨平台的网络程序时,不要使用java.net.InetAddress类的getHostName方式得到主机名,因为不同的平台的主机名格式是不同的,最好使用getAddress得到格式一样的IP地址,另外,程序中所有的主机名都要换成IP地址,比如www.263.net就要换成相应的IP地址。

---- 10. 涉及文件操作的程序需要注重:不要在程序中硬性编码文件路径,理由和8中相同,只是这一点特殊重要,因此单独提出。而且,不同平台对于文件名使用的字符及最大文件名长度的要求不同,编写你的程序的时候要使用一般的ASCII码字符作为文件的名字,而且不能与平台中已存在的程序同名,否则会造成冲突。

---- 11. 假如您写的程序是GUI程序,在使用AWT组件时不能硬性设置组件的大小和位置而应该使用Java的布局治理器(layout manager)来设置和治理可视组件的大小和位置,否则有可能造成布局混乱。

---- 12. 由于不同的操作系统,不同的机器,系统支持的颜色和屏幕的大小和分辨率都不同,如何获得这些属性呢?使用java.awt.Systemcolor类可以获得需要的颜色,如该类的inactiveCaption 就是窗口边框中活动标题的背景颜色,menu则是菜单的背景颜色。使用java.awt.Toolkit的getScreenResolution可以以“象素每英寸”为单位显示屏幕的分辨率。该类的getScreenSize可以得到屏幕大小(英寸),loadSystemColors可以列出所有的系统颜色。

---- 这些注重事项有些是来自参考文献,有些是自己长期编写Java程序的经验所得,相信对你的程序设计会有所帮助。
返回类别: 教程
上一教程: VRML与JAVA在网络课件中交互运用分析
下一教程: 关于JSP中文问题的解决方式

您可以阅读与"编写跨平台JAVA程序注重事项"相关的教程:
· 编写跨平台Java程序注重事项
· 编写跨平台Java程序注重事项
· 讲解关于编写跨平台Java程序时的注重事项
· 讲解关于编写跨平台JAVA程序时的注重事项
· 利用JAVAMAIL API编写邮件发关程序
    微笑服务 优质保证 索取样品