2012-11-22 67 views
4

我創建了一個在Windows上運行的jar。在這個jar中我已經集成了Cognos系統,我們正在使用Oracle數據庫進行一些文件寫入和少量數據庫操作。驗證Java平臺獨立性

我有一個任務來檢查jar是否可以在Linux系統上運行。

有沒有辦法檢查Jar文件是否與平臺無關?

我覺得文件寫入和數據庫操作應該運行,因爲他們現在正在工作。但我仍然不確定Fie。

+1

無論是在虛擬機上的真實硬件上,在Linux下運行它怎麼樣? – Jack

+0

你可以放在這裏,無論你認爲可能無法工作,以便其他人可以指導你。不知道你的代碼是什麼,沒有人能夠幫助你。正常的文件讀/寫將始終適用於所有平臺,除非你已經硬編碼任何操作系統特定的東西,如路徑分隔符,換行符等 –

回答

1

我有一個任務來檢查jar是否運行Linux系統。有沒有辦法檢查Jar文件是否與平臺無關?

方式來確保是在Linux系統上安裝它,並執行所有功能的全面測試。 (如果覺得太麻煩,至少所有功能,可以令人信服地依賴於平臺的測試)


爲了記錄在案,有很多的事情,可以使你的代碼依賴於平臺,包括:

  • 硬接線組裝路徑名的時候換行終止到你的代碼,
  • 硬佈線路徑名到你的代碼,
  • 假設Windows(或Linux)的文件分隔符/路徑語法,
  • 東西做與Windows的文件鎖定,以及其他特定於平臺的文件系統行爲,
  • 硬接線外部命令名稱到你的代碼,
  • 使用本機代碼庫,
  • 作出有關輸入/輸出假設編碼(例如,假設默認值是UTF-8或其他東西),
  • Swing GUI渲染和(偶爾)行爲中的奇怪事情,
  • 以及其他可能我還沒有想到的事情。

,以確保你沒有錯過的東西就是測試,測試的唯一方法,測試

+0

謝謝斯蒂芬..反正我會做..只是想知道是否有任何種類的工具可用在網上(雖然我找不到)。 –

+0

我不知道這樣的工具。 –

1

檢查它在Linux或Mac,但你需要檢查幾個平臺相關的東西,如使用正確的路徑文件操作分隔符,換行符

您可以使用java.io.File.separatorCharSystem.getProperty("path.separator");作爲路徑分隔符,使用System.getProperty("line.separator");作爲換行符。