Java 6的Desktop.browse()可能在我遇到的任何系统上都不受支持吗?

时间:2011-08-05 17:50:58

标签: java java-6

我看到新的Desktop类(我想用它的浏览(uri)方法)包括检查以验证它是否受支持。如果我正在为多个操作系统分发我的应用程序,我是否应该期望它有时不受支持,并坚持像this "Bare Bones Browser Launch"这样的代码作为后备方法,或者这是非常罕见的?我可能会遇到哪些特定操作系统的问题?

(我正在分发Mac / Win / Solaris / Linux,但如果您对它们有所了解,请随时回答任何特殊操作系统。)

2 个答案:

答案 0 :(得分:5)

你应该采取防御性的方案。

来自How to Integrate with the Desktop Class

  

使用isDesktopSupported()方法确定是否使用桌面   API可用。 在Solaris操作系统和Linux上   平台,此API依赖于Gnome库。如果那些库   如果不可用,此方法将返回false

(强调我的)

答案 1 :(得分:2)

我认为重点是,Java需要OS支持什么?他们通过允许JVM实现者返回false,假设它不受支持,然后继续,并且仍然是100%Java兼容(无论是否“写入一次运行”,我们正在给出一个操作系统,我会留下你自己的评价。)

Bare Bones浏览器启动或更复杂的库(如BrowserLauncher)等技术将始终只能在一组有限的操作系统和浏览器上运行,而不是为通用Java标准生成的通用代码将为您提供

所以结果是,使用像Bare Bones启动器这样的技术,如果你专门针对的操作系统不支持Desktop.openURL,但是你必须把它编写为专门在该操作系统上工作 - 没有理由认为该技术适用于该操作系统上的给定操作系统和给定的JVM,它只代表我们在Java 6之前启动浏览器所需要做的事情。