2011-08-05 45 views
1

我看到新的桌面類(我想用它的瀏覽(uri)方法)包含檢查以驗證它是否受支持。如果我將應用程序分發給多個操作系統,我是否應該期望它有時不受支持,並且堅持使用代碼this "Bare Bones Browser Launch"作爲備用方法,或者這種情況極爲罕見?任何特定的操作系統,我可能會遇到問題?Java 6的Desktop.browse()可能在我遇到的任何系統上不受支持?

(我發佈適用於Mac /運/ Solaris/Linux操作系統,但隨時回答有關任何特殊的操作系統,如果你瞭解他們。)

回答

5

您應該防禦性地編程。

How to Integrate with the Desktop Class

使用isDesktopSupported()方法來確定桌面 API是否可用。 在Solaris操作系統和Linux平臺上,此API依賴於Gnome庫。如果這些庫 不可用,則此方法將返回false

(重點煤礦)

2

我認爲這一點是相反的,什麼是Java的需要一個操作系統來支持?他們通過允許JVM實現者返回false,假定它不被支持,繼續前進,仍然是100%符合Java(不管它是否是「一次寫入就可以運行」請留下您自己的評估)。

像Bare Bones瀏覽器啓動或像BrowserLauncher這樣更復雜的庫的技術總是隻能在一套有限的操作系統和瀏覽器上工作,而不是爲通用Java標準所提供的通用代碼所能提供的。

因此,結果是,如果您專門針對的操作系統不支持Desktop.openURL,則需要使用像Bare Bones啓動器這樣的技術,但是您必須將其編寫爲專門在該操作系統上工作 - 不存在有理由認爲該技術對於給定的操作系統和該操作系統上的給定JVM有效,它只是代表我們在Java 6之前啓動瀏覽器時必須做的事情。

相關問題