`
djsl6071
  • 浏览: 593537 次
  • 性别: 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“一次编写,到处运行”的设计理念。然而,在实际开发过程中,要实现真正的跨平台应用并非易事,需要注意诸多细节...

    编写跨平台程序的注意事项.doc

    以下是一些编写跨平台 Java 程序的关键点: 1. **使用纯 Java 语言和标准库**:确保你的程序只依赖于 Java 核心 API,不包含任何特定平台的代码或第三方库。如果必须使用第三方库,确保这些库也是跨平台的,且基于 ...

    java的JNI跨平台技术

    ### Java的JNI跨平台技术详解 #### 一、引言 随着互联网技术的快速发展与广泛应用,跨平台服务的需求日益增长。为了满足这一需求,许多网络服务商开始开发自己的网络服务(Web Service),以抢占逐渐明晰的面向...

    java跨平台软件如何打包成一个exe文件详解

    Java是一种跨平台的编程语言,这意味着编写的Java程序可以在任何安装了Java运行环境(JRE或JDK)的操作系统上运行。然而,对于最终用户来说,直接运行jar文件可能不够直观和方便。因此,将Java程序打包成exe文件可以...

    java程序设计基础教案

    - Java的特点包括跨平台性(Java程序编译为字节码,在任何装有Java虚拟机(JVM)的平台上都能运行)、垃圾回收机制、自动内存管理以及丰富的类库。 - Java与C/C++的主要区别在于Java是面向对象的,而C++同时支持...

    2022河南知到java程序设计全部答案免费.docx

    六、Java 程序设计注意事项 1. 代码规范:遵循 Java 编程规范,添加合适的注释和文档注释。 2. 错误处理: Java 程序设计中需要处理错误和异常,使用 try-catch 语句来捕获和处理异常。 本文总结了 Java 程序设计...

    用Java实现的一个聊天程序

    在IT领域,编程语言Java因其强大的跨平台能力和丰富的库支持,常被用于开发各种类型的应用程序,包括聊天程序。本项目是一个基于客户端-服务器(Client-Server,简称CS)架构的简单聊天程序,它展示了如何使用Java来...

    打包java程序为exe文件

    不过,需要注意的是,这种方式仅适用于Windows平台,对于其他操作系统,如macOS或Linux,可能需要寻找其他解决方案,如使用cross-compilation工具或提供跨平台的解决方案,如使用JPackage(Java 16及以上版本提供的...

    《Java 语言程序设计》

    - Java是一种跨平台的语言,它的可执行形式是字节码,而非直接的机器代码。字节码由JVM解释执行,这使得Java程序能在任何安装了JVM的平台上运行,实现了“一次编写,处处运行”的特性。 3. **Java程序的运行过程**...

    java调用Windows应用程序

    - 考虑到跨平台的问题,如果目标应用是在不同平台上使用,则需要编写相应平台的处理逻辑。 #### 四、扩展思考 1. **错误处理**:在实际开发中,需要更加完善的错误处理机制,比如记录日志、异常类型区分等。 2. **...

    Java实现的视频播放程序源码

    1. **Java编程语言**:Java是一种面向对象的、跨平台的编程语言,广泛应用于桌面应用、Web应用和移动应用开发。在视频播放程序中,Java用于编写控制逻辑,如播放、暂停、快进、快退等操作,以及用户界面的交互。 2....

    Java程序exe生成器

    Java程序exe生成器是一种工具,它的主要功能是将Java的jar包转换成Windows平台下的.exe可执行文件。这种转换对于那些希望...通过理解其工作原理和注意事项,我们可以更好地利用这类工具,提高Java应用程序的用户体验。

    JAVA程序打包成exe文件

    在软件开发领域,特别是使用Java语言进行跨平台应用开发时,开发者常常会遇到如何将编写的Java程序打包成可以在不同操作系统上直接运行的应用程序的问题。对于Windows平台而言,用户习惯于双击.exe文件来启动应用...

    Java语言程序设计教程.rar

    这一章会讲解Java是如何从Sun Microsystems公司诞生,并逐渐成为跨平台、面向对象的首选语言。此外,还会讨论Java的“一次编写,到处运行”的哲学,以及JVM(Java虚拟机)在实现这一理念中的作用。 第二章分为两...

    搜索引擎源代码用java、jsp编写的搜索引擎源代码

    它的强大性能和跨平台特性使得Java成为构建搜索引擎后端的理想选择。 JSP则是Java在Web开发中的一个重要组件,它允许开发者将动态内容嵌入到HTML页面中。在搜索引擎项目中,JSP用于生成用户界面,接收用户的查询...

    JAVA调用C++编写的DLL(C++和JAVA源码)

    5. **注意事项**:在跨平台环境下,需要注意的是,DLL是Windows特有的,其他操作系统如Linux、Mac OS需要生成.so或.dylib文件。此外,处理多线程、异常处理以及内存管理时需特别谨慎,因为Java和C++的内存管理机制...

    手把手教你JAVA的手机程序开发

    Java作为一款广泛应用于移动开发的语言,因其跨平台特性,灵活性和丰富的库支持而备受青睐。这个教程旨在帮助初学者以及有一定编程基础的开发者快速掌握Java手机程序开发的核心概念和技术。 首先,我们从"ch-01.pdf...

    exe4j (java程序转换成.exe)

    在IT行业中,Java作为一种跨平台的编程语言,被广泛用于开发各种应用程序。然而,在Windows系统中,用户通常习惯于执行.exe格式的可执行文件。这就引出了一个问题:如何将用Java编写的程序转化为Windows用户友好的....

Global site tag (gtag.js) - Google Analytics