`
ipioneer
  • 浏览: 45806 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

如何编写跨平台的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-编写跨平台Java程序注意事项

    java-编写跨平台Java程序注意事项,相当经典。

    编写跨平台Java程序注意事项

    使用Java语言编写应用程序最大的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有跨平台的 特性,事实上,相当一部分的Java程序是不...本文将为大家介绍编写跨平台的 Java程序需要注意的一些问题。

    跨平台Java程序

    下面是在编写跨平台的Java程序是需要注意的一些事情: 1.编写Java跨平台应用程序时,你可以选择JDK1.0,1.1,1.2或支持它们的GUI开发工具如:Jbuilder,Visual Age for Java 等等,但是必须注意你的Java程序只能使用...

    java程序坦克大战

    因为java是跨平台的,java编写的界面源程序最后在计算机的实现可能由其他语言来最终完成。(AWT的初衷是与平台无关性,意思就是界面在任何操作系统上显示的长宽等格局都不会发生变化,保持审美。但是AWT在设计的时候...

    java图片浏览器跨平台运行程序与源码

    用java编写的图片浏览器,有基本的图片浏览功能,打开,上一张,下一张,放大和缩小。同时还可以在图片上画不规则多边形,显示并保存点到本地xml。还实现了一个java视频浏览器。采用netbean GUI 控件编写,注释清晰...

    juniversal:用 Java 编写跨平台移动应用程序

    JUniversal JUniversal 允许您使用源代码翻译用 Java 编写本机、移动、跨平台应用程序。 它使 Java 真正跨平台。 有关更多信息,请访问 JUniversal 网站: ://juniversal.org

    Java课程实验 编写 Spring Boot 入门程序

    平台无关性:Java是一种跨平台的编程语言,使用Java编写的应用程序可以在多个操作系统上运行,如Windows、Mac、Linux等,只需在目标平台上安装Java虚拟机(JVM)。 面向对象:Java是一种纯面向对象的编程语言,在...

    基于java实现图片浏览小程序(java+applet)源码

    Java的跨平台特性使得Java程序可以在任何支持Java虚拟机的操作系统上运行,包括Windows、Linux、Mac OS等。这使得Java程序的开发和部署变得更加灵活和方便。 Java程序的编写需要遵循面向对象的编程思想,即将程序...

    基于Java实现聊天室程序附项目源码分享

    Java的跨平台特性使得Java程序可以在任何支持Java虚拟机的操作系统上运行,包括Windows、Linux、Mac OS等。这使得Java程序的开发和部署变得更加灵活和方便。 Java程序的编写需要遵循面向对象的编程思想,即将程序...

    usb4java跨平台的基于 libusb1.0 开发的JavaUSB类库

    usb4java跨平台的基于 libusb 1.0 开发的 Java USB 类库,通过 usb4java-javax extension 支持 javax-usb standard (JSR-80) 开发。 平台环境支持: Linux (x86 32/64 bit, ARM 32 bit) OS X (x86 32/64 ...

    基于java实现门户管理系统(JAVA Portal Management System)分享

    Java的跨平台特性使得Java程序可以在任何支持Java虚拟机的操作系统上运行,包括Windows、Linux、Mac OS等。这使得Java程序的开发和部署变得更加灵活和方便。 Java程序的编写需要遵循面向对象的编程思想,即将程序...

    基于java实现作业管理系统设计附项目源码+文档说明

    Java的跨平台特性使得Java程序可以在任何支持Java虚拟机的操作系统上运行,包括Windows、Linux、Mac OS等。这使得Java程序的开发和部署变得更加灵活和方便。 Java程序的编写需要遵循面向对象的编程思想,即将程序...

    Java 虚拟机学习笔记:Java 内存区域,垃圾收集,内存分配与回收策略,JVM 调优,文件结构,类加载机制,Java 程序

    它采用了“一次编写,到处运行”的原则,即一次编写的程序可以在不同的操作系统上运行,这得益于Java虚拟机(JVM)的存在。JVM是Java的核心组成部分,它可以将Java代码解释成特定平台上的机器码,从而实现跨平台运行...

    基于JAVA实现图书馆书库管理系统设计附项目源码+文档说明

    Java的跨平台特性使得Java程序可以在任何支持Java虚拟机的操作系统上运行,包括Windows、Linux、Mac OS等。这使得Java程序的开发和部署变得更加灵活和方便。 Java程序的编写需要遵循面向对象的编程思想,即将程序...

    基于java实现学生住宿管理系统JAVA附项目源码

    Java的跨平台特性使得Java程序可以在任何支持Java虚拟机的操作系统上运行,包括Windows、Linux、Mac OS等。这使得Java程序的开发和部署变得更加灵活和方便。 Java程序的编写需要遵循面向对象的编程思想,即将程序...

    基于java实现的一个简单的即时通讯工具的设计与开发附项目源码+文档说明

    Java的跨平台特性使得Java程序可以在任何支持Java虚拟机的操作系统上运行,包括Windows、Linux、Mac OS等。这使得Java程序的开发和部署变得更加灵活和方便。 Java程序的编写需要遵循面向对象的编程思想,即将程序...

    把java生成独立的程序,不用安装jdk也可使用

    所以我认为这个是导致Java桌面应用被一些人所讨厌的最大原因,Java的优势是“一次编写,随处运行”,跨平台特性确实很好,但并不是每个人都需要或都想要跨平台,而且有时候JVM平台或版本问题也会造成“一次编写,到处...

Global site tag (gtag.js) - Google Analytics