使用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 Development Kit (JDK) 版本,例如 1.0、1.1、1.2 或更高版本,并且依赖于 Java 核心 API,避免...
### Java-编写跨平台Java程序注意事项 在Java编程领域中,跨平台性是其核心优势之一,这得益于Java“一次编写,到处运行”的设计理念。然而,在实际开发过程中,要实现真正的跨平台应用并非易事,需要注意诸多细节...
以下是一些编写跨平台 Java 程序的关键点: 1. **使用纯 Java 语言和标准库**:确保你的程序只依赖于 Java 核心 API,不包含任何特定平台的代码或第三方库。如果必须使用第三方库,确保这些库也是跨平台的,且基于 ...
Java的跨平台性是其最显著的特性之一,这一特性使得Java程序能在不同的操作系统上运行,无需重新编译。这得益于Java的“一次编写,到处运行”(Write Once, Run Anywhere, WORA)的理念。Java的跨平台能力是通过Java...
对于编程语言而言,跨平台能力意味着开发者编写的程序无需修改或只需少量修改就能在不同的操作系统或硬件平台上运行。 #### 平台与指令集的关系 一个平台通常指特定的操作系统与CPU的组合。不同类型的CPU有着各自...
下面是在编写跨平台的Java程序是需要注意的一些事情: 1.编写Java跨平台应用程序时,你可以选择JDK1.0,1.1,1.2或支持它们的GUI开发工具如:Jbuilder,Visual Age for Java 等等,但是必须注意你的Java程序只能使用...
### Java跨平台的原理 Java作为一种广泛使用的编程语言,其最显著的特点之一就是“一次编写,到处运行”(Write Once, Run Anywhere, WORA)。这一特性主要得益于Java的跨平台性,使得开发者可以在不同的操作系统上...
Java虚拟机(Java Virtual Machine,简称JVM)是JRE的核心组件,它是Java程序能够跨平台运行的关键。JVM负责解析和执行字节码(.class文件),这是一种平台无关的中间代码。JVM通过类加载器将类文件加载到内存,然后...
1. **Java语言基础**:Java是一种跨平台的面向对象编程语言,具有丰富的类库和强大的功能。在这个倒计时程序中,开发者使用了Java的基础语法,如变量声明、条件语句、循环结构、方法定义等。 2. **计时器类(Timer...
Java是一种跨平台的、面向对象的编程语言,J2SE(Java Standard Edition)是其标准版本,适用于桌面应用程序开发。开发者用Java编写扫雷程序,这意味着游戏可以在任何安装了Java运行环境的计算机上运行,体现了Java...
Java的跨平台特性使得这样的程序可以在多种操作系统上运行,如Windows、Linux、Mac OS等。 在该程序中,"多线程下载"是一项核心功能。多线程下载意味着文件的下载被分割成多个部分,每个部分由单独的线程同时进行,...
在IT领域,Java是一种广泛应用的高级编程语言,以其跨平台、面向对象的特性而闻名。本项目是一个使用Java开发的记事本程序,它允许用户进行基本的文字编辑操作,如新建、打开、保存、复制、粘贴、查找、替换等。下面...
Java编程语言以其跨平台、面向对象的特性在软件开发领域占据着重要的地位,尤其是在网络应用和桌面应用中。本项目是个人使用JAVA编写的聊天程序,它实现了基本的即时通讯功能,用户之间可以进行文字聊天并发送表情,...
### Java的JNI跨平台技术详解 #### 一、引言 随着互联网技术的快速发展与广泛应用,跨平台服务的需求日益增长。为了满足这一需求,许多网络服务商开始开发自己的网络服务(Web Service),以抢占逐渐明晰的面向...
Java作为一种跨平台的编程语言,使得这个程序可以在多种操作系统上运行,如Windows、Mac OS X和Linux。 【描述】:“这是一个用JAVA编写的像WINDOWS画板的程序,实现了一小部分功能,可以拿来看看的东东。” 描述...
跨平台开发是软件开发领域中的一个重要方面,它允许开发者使用统一的代码库来构建能在多种操作系统上运行的应用程序,这不仅可以减少开发和维护成本,还能扩大应用的潜在用户基础。 书中首先讨论了Netscape浏览器在...
Java作为一种跨平台的语言,使得这个记事本程序能够在多种操作系统上运行。 描述部分提到,这个程序是开发者参照现有的多个记事本程序设计的,它实现了Windows记事本的大部分功能。这可能包括基本的文字编辑操作,...
Java的跨平台特性是指,Java程序可以在任何安装了Java虚拟机(JVM)的操作系统上运行,无需修改程序代码。Java的这一特性归功于其编译和运行机制。Java源代码首先被编译器编译成字节码,然后由JVM解释执行字节码。这...
Java作为一种跨平台的编程语言,使得这个画图程序能够在不同的操作系统上运行,如Windows、Linux或MacOS。 描述部分虽然没有提供具体信息,但我们可以推测,这个程序可能是为了教学目的设计的,或者是一个个人项目...