1

新しい Desktop クラス (browse(uri) メソッドに使用したい) には、サポートされていることを確認するためのチェックが含まれています。複数のオペレーティング システム用にアプリケーションを配布している場合、サポートされていない場合があり、フォールバック方法としてこの「Bare Bones Browser Launch」のようなコードに固執することを予期する必要がありますか、それとも非常にまれでしょうか? 問題が予想される特定の OS はありますか?

(私は Mac/Win/Solaris/Linux 用に配布していますが、例外的な OS について何か知っていることがあれば、遠慮なく答えてください。)

4

2 に答える 2

5

防御的にプログラミングする必要があります。

デスクトップクラスと統合する方法から:

isDesktopSupported() メソッドを使用して、デスクトップ API が使用可能かどうかを判断します。Solaris オペレーティング システムと Linux プラットフォームでは、この API は Gnome ライブラリに依存しています。これらのライブラリが利用できない場合、このメソッドは false を返します

(私のものを強調)

于 2011-08-05T18:02:09.343 に答える
2

ポイントは逆だと思います.JavaはOSに何をサポートする必要がありますか? 彼らは、JVM 実装者が false を返すだけで、サポートされていないと言って先に進み、100% Java に準拠することを許可することで、OS に問題を与えています (それが「一度書けばどこでも実行できる」かどうかに関係なく)。ご自身の評価にお任せします)。

Bare Bones Browser Launch のような手法やBrowserLauncherのようなより複雑なライブラリは、一般的な Java 標準用に作成された汎用コードが提供するものよりも、限られた OS とブラウザーのセットでのみ機能します。

したがって、具体的に対象としている OS が Desktop.openURL をサポートしていない場合は、Bare Bones ランチャーのような手法を使用しますが、その OS で具体的に動作するように記述する必要があります。そのように考える理由はありません。この手法は、特定の OS とその OS 上の特定の JVM で機能します。これは、Java 6 より前にブラウザーを起動するために必要だったことを表しているにすぎません。

于 2011-08-05T18:01:46.147 に答える