佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 跨平臺Java程序

跨平臺Java程序

熱門標(biāo)簽:銀行業(yè)務(wù) 科大訊飛語音識別系統(tǒng) 服務(wù)器配置 阿里云 Mysql連接數(shù)設(shè)置 團購網(wǎng)站 Linux服務(wù)器 電子圍欄
使用Java語言編寫應(yīng)用程序最大的優(yōu)點在于“一次編譯,處處運行”,然而這并不是說所有的Java程序都具有跨平臺的特性,事實上,相當(dāng)一部分的Java程序是不能在別的操作系統(tǒng)上正確運行的,那么如何才能編寫一個真正的跨平臺的Java程序呢?下面是在編寫跨平臺的Java程序是需要注意的一些事情:

  1.編寫Java跨平臺應(yīng)用程序時,你可以選擇JDK1.0,1.1,1.2或支持它們的GUI開發(fā)工具如:Jbuilder,Visual Age for Java 等等,但是必須注意你的Java程序只能使用Java核心API包,如果要使用第三方的類庫包,則該類庫包也要由Java核心包開發(fā)完成,否則在發(fā)布你的程序的時候還得將支持該Java類庫包的JVM發(fā)布出去。也就是說,你的程序需要是100%純Java的。舉一個例子,Visual J++ 就不是純Java的,由Visual J++編寫的程序也就不具有平臺無關(guān)性。

  2.無論你使用的是JDK或其他開發(fā)工具,在編譯時都要打開所有的警告選項,這樣編譯器可以盡可能多的發(fā)現(xiàn)平臺相關(guān)的語句,并給出警告。雖然不能保證沒有編譯時警告錯誤的程序一定是跨平臺的,但含有警告錯誤的程序卻很有可能是非平臺無關(guān)的。

  3.在程序中使用任何一個方法的時候,要詳細(xì)察看文檔,確保你使用的方法不是在文檔中已經(jīng)申明為過時的方法(Deprecated method),也不是文檔中未標(biāo)明的隱含方法(Undocumented method)。

  4.退出Java程序時盡量不要使用java.lang.System的exit方法。Exit 方法可以終止JVM,從而終止程序,但如果同時運行了另一個Java程序,使用exit方法就會讓該程序也關(guān)閉,這顯然不是我們希望看到的情況。事實上要退出Java程序,可以使用destory()退出一個獨立運行的過程。對于多線程程序,必須要關(guān)閉各個非守護(hù)線程。只有在程序非正常退出時,才使用exit方法退出程序。

  5.避免使用本地方法和本地代碼,盡可能自己編寫具有相應(yīng)功能的Java類,改寫該方法。如果一定要使用該本地方法,可以編寫一個服務(wù)器程序調(diào)用該方法,然后將現(xiàn)在要編寫的程序作為該服務(wù)器程序的客戶程序,或者考慮CORBA(公共對象請求代理)程序結(jié)構(gòu)。

  6.Java中有一個類似于Delphi中的winexec的方法,java.lang.runtime類的exec方法,作為該方法本身是具有平臺無關(guān)性的,但是給方法所調(diào)用的命令及命令參數(shù)卻是與平臺相關(guān)的,因此,在編寫程序時要避免使用,如果一定要調(diào)用其他的程序的話,必須要讓用戶自己來設(shè)置該命令及其參數(shù)。比如說,在windows中可以調(diào)用notepad.exe程序,在linux 中就要調(diào)用vi程序了。

  7.程序設(shè)計中的所有的信息都要使用ASCII碼字符集,因為并不是所有的操作系統(tǒng)都支持Unicode字符集,這對于跨平臺的Java中文軟件程序不能不說是一大噩耗。

  8.在程序中不要硬性編碼與平臺相關(guān)的任何常量,比如行分隔符,文件分隔符,路徑分隔符等等,這些常量在不同的平臺上是不同的,比如文件分隔符,在UNIX和MAC中是“/”,在windows中是“”,如果要使用這些常量,需要使用jdava.util.Properties類的getProperty方法,如java.util.Properties.getProperty(“file.separator”)可以獲得文件分隔符,getProperty (“l(fā)ine.separator”)返回行分隔符,getProperty(“path.separator”)返回路徑分隔符。

  9.在編寫跨平臺的網(wǎng)絡(luò)程序時,不要使用java.net.InetAddress類的getHostName方法得到主機名,因為不同的平臺的主機名格式是不同的,最好使用getAddress得到格式相同的IP地址,另外,程序中所有的主機名都要換成IP地址,比如www.263.net就要換成相應(yīng)的IP地址。

  10.涉及文件操作的程序需要注意:不要在程序中硬性編碼文件路徑,理由和8中一樣,只是這一點特別重要,因此單獨提出。而且,不同平臺對于文件名使用的字符及最大文件名長度的要求不同,編寫你的程序的時候要使用一般的ASCII碼字符作為文件的名字,而且不能與平臺中已存在的程序同名,否則會造成沖突。

  11.如果您寫的程序是GUI程序,在使用AWT組件時不能硬性設(shè)置組件的大小和位置而應(yīng)該使用Java的布局管理器(layout manager)來設(shè)置和管理可視組件的大小和位置,否則有可能造成布局混亂。

  12.由于不同的操作系統(tǒng),不同的機器,系統(tǒng)支持的顏色和屏幕的大小和分辨率都不同,如何獲得這些屬性呢?使用java.awt.Systemcolor類可以獲得需要的顏色,如該類的inactiveCaption 就是窗口邊框中活動標(biāo)題的背景顏色,menu則是菜單的背景顏色。使用java.awt.Toolkit的getScreenResolution可以以“象素每英寸”為單位顯示屏幕的分辨率。該類的getScreenSize可以得到屏幕大小(英寸),loadSystemColors可以列出所有的系統(tǒng)顏色。
您可能感興趣的文章:
  • Java跨平臺原理與虛擬機相關(guān)簡介
  • Java 實現(xiàn)跨平臺的操作方式
  • Java通過SMS短信平臺實現(xiàn)發(fā)短信功能 含多語言
  • 微信公眾平臺開發(fā)實戰(zhàn)Java版之微信獲取用戶基本信息
  • java實現(xiàn)微信公眾平臺自定義菜單的創(chuàng)建示例
  • java獲得平臺相關(guān)的行分隔符和java路徑分隔符的方法
  • 淺談Java平臺無關(guān)性

標(biāo)簽:衡水 蚌埠 棗莊 衢州 廣元 萍鄉(xiāng) 大理 江蘇

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《跨平臺Java程序》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    遂宁市| 翁牛特旗| 梨树县| 麟游县| 西藏| 禹城市| 吴堡县| 淮南市| 翼城县| 伊通| 大荔县| 新干县| 延庆县| 昆山市| 金山区| 太白县| 临漳县| 吉木萨尔县| 清水县| 左贡县| 冀州市| 东台市| 永仁县| 昌黎县| 东辽县| 钟山县| 昌江| 武功县| 岐山县| 资阳市| 清镇市| 抚远县| 青海省| 万载县| 桐庐县| 浦东新区| 隆尧县| 韶关市| 平武县| 澄江县| 惠安县|