`
- 浏览:
186954 次
- 性别:
- 来自:
北京
-
使用Java语言编写应用程序最大的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相当一部分的Java程序是不能在别的操作系统上正确运行的,那么如何才能编写一个真正的跨平台的Java程序呢?下面是在编写跨平台的Java程序是需要注意的一些事情:
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可以列出所有的系统颜色。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
《Java程序设计.zip》是一个包含了丰富Java学习资源的压缩包,旨在帮助初学者或有经验的开发者深化对Java编程的理解并提升实践能力。这个压缩包包括了以下几个关键部分: 1. **教材部分**:这部分可能包含Java编程...
### 注意事项 - 确保在进行任何配置更改前备份原有的文件或设置,以防万一出现问题时可以轻松恢复。 - 如果在配置过程中遇到问题,建议查阅官方文档或者寻求社区的帮助。 - VE的配置可能会因Eclipse的不同版本而略...
Java程序设计是一门集理论与实践于一体的计算机编程课程,随着教育技术的发展,传统的教学模式逐渐被网络教学和混合式学习所补充和改变。以下是根据给定文件内容,总结出的Java程序设计在理论和实践方面的知识点。 ...
- **一般命名注意事项**: 避免使用缩写,除非它是广泛接受的,如`URL`。避免使用可能引起混淆的名称。 2. **Java源文件样式**: - **Class代码布局**: 类体内的元素应按特定顺序排列,通常为:注释、常量、私有...
《Java 极根编程》是一本深度探讨Java编程精髓的书籍,旨在帮助程序员提升技能,达到编程技艺的极致。在编程行业中,理解并掌握一门语言的底层原理和最佳实践是至关重要的,尤其对于Java这样的主流编程语言来说更是...
5. `flagInfo.txt`: 这可能是一个包含额外信息或说明的文本文件,比如习题解答的注意事项、提示,或者是关于书中某些概念的补充解释。 6. `build.xml`: 这是一个Ant构建文件,Ant是Java项目常用的构建工具。通过此...
8. **readme.txt**:这是一个标准的文本文件,通常包含有关光盘内容的重要信息,如版权信息、更新说明或使用注意事项。 9. **pheibook**:这个文件名可能是光盘中的一部分,可能是一个目录或者压缩文件,包含了与...
使用Android Studio工具、Java编程语言开发的一款星座APP 拥有倒计时版本的开屏动画 主页分为:星座、配对、运势、我的四个功能 在星座页面中,可以查看每个星座,显示星座的生日范围,显示星座的性格特点、最大特征...
本资源是一个关于Java编程语言的学习笔记,涵盖了Java的基础知识、语法、数据类型、变量、类型转换等方面的内容。 标题:"java学习笔记.pdf" 描述:"想自学的小伙伴可以看俺" 标签:"Java" 部分内容: 目录结构解析...
- **使用方法:**提供每种节点的具体使用方法和注意事项。 - **示例展示:**通过实际示例,演示不同类型的节点如何在实际应用中被有效利用。 ##### 第6章:场景图渲染模型 - **渲染流程:**解释Java3D场景图渲染的...
4. 分割字符串的注意事项 - `split()`方法返回的是一个字符串数组,数组的长度等于字符串被分割的次数。 - 如果正则表达式没有匹配到任何内容,`split()`方法将返回原始字符串本身,数组长度为1。 - 分割后的结果不...
#### 四、翻译过程与注意事项 - **翻译团队背景**:译者团队由具有丰富Java开发经验的专业人士组成,他们在翻译过程中注重保留技术术语的准确性,同时力求语言的通俗易懂。 - **技术名词处理**:对于专有名词和生僻...
此外,压缩包中的"使用说明.txt"文件应该包含了详细的安装指南和使用注意事项,对于初学者尤其有用,它可能涵盖如何配置环境变量、如何验证Java安装是否成功(通过运行`java -version`命令)、以及如何开始使用Java...
在Java编程初期,经常会出现一些常见的错误,比如找不到文件、单词拼写错误、括号不匹配以及中英文混淆等问题。这些问题虽然简单,但却是初学者最易犯的错误。 1. **找不到文件** - **文件扩展名隐藏**:在某些...
通过以上内容,开发者能够掌握大华SDK JAVA版主动注册的基本操作和注意事项,从而顺利地将主动注册功能集成到自己的应用程序中,实现对大华设备的有效管理和监控。在实际开发过程中,应结合SDK的完整文档和示例代码...
- **构造器、初始化与清理**:讨论了如何有效地初始化对象,避免并发问题,以及使用 finalize() 的注意事项。 - **方法**:阐述了如何设计高效的方法,包括避免过早优化,以及使用静态工厂方法代替构造器等。 2. ...
### Java安装说明原文知识点...虽然文档本身未给出具体的安装步骤,但通过对其内容的分析,我们可以推断出安装 Java 所需的一般流程及注意事项。这对于希望在 UNIX 环境下部署 Java 应用的用户来说是非常有价值的资源。
今天发布一些关于JICQ在使用的注意事项、补充说明、与一个更新版本(0.61)。我的JICQ其实已经被我改动了一下,让它更合理一些。只是由于一些原因,没有及时发布,我现在马上发布到CSDN上。改动如下:1. 我已经去掉...
接下来,"readme.txt"通常是一个文本文件,用来提供关于压缩包或项目的重要信息,如编译步骤、依赖库、注意事项等。在这个场景下,它可能包含了如何编译`B.java`的说明,例如可能需要特定版本的JDK,或者有额外的...
- **附录A:传递与返回对象**:探讨对象作为参数传递时的注意事项。 - **附录B:Java编程指南**:总结了一系列最佳实践和编码规范。 - **附录C:补充资料**:提供额外的学习资源和参考资料。 - **附录D:资源汇总**...