NetBeansプラットフォーム上に構築されたWebスタートアプリケーションは、デスクトップショートカットとスタートメニュー項目を作成しません
-
02-10-2019 - |
質問
Java Web Startを使用して起動するNetBeansプラットフォームアプリケーションを作成しました。 NetBeans 6.8の「ビルドJNLPアプリケーション」コマンドを使用して、戦争ファイルを構築しました。
デスクトップショートカットとメニュー項目をJNLPファイルに追加しましたが、何らかの理由で、これらはアプリケーションの起動時に作成されません。
しかし、私が行くとき:
コントロールパネル - > java->一時的なインターネットファイル - >表示 - > [アプリケーション]> [選択したアプリケーションへのショートカットのインストール]をクリックします」
デスクトップとメニューのショートカットが正しく作成されます。
また、Javaコンソールでは、ショートカット作成オプションが次のように設定されています(デフォルト、私は推測します)。
- ヒントがある場合は、プロンプトユーザー
以下は私のJNLPファイルのスニペットです:
<jnlp spec="6.0+" codebase="$$codebase">
<information>
<title>${app.title}</title>
<vendor>SomeVendor (Pty) Ltd</vendor>
<description>Some description</description>
<icon href="${app.icon}"/>
<shortcut online="true">
<desktop/>
<menu submenu="MyApp"/>
</shortcut>
</information>
...
私は困惑しています。誰かがこれについて説明していますか?ありがとう
PSこれはWindows XPとWindows 7の両方にあります。NetBeansバージョン:6.8
解決
javax.jnlp.integrationservice(JDK 6.1.18以降利用可能)を使用して、これを解決することができました。
このクラスは、jdkサンプルディレクトリ:/sample/jnlp/servlet/jnlp.jarにあるjnlp.jarにあります。
次のコードにより、デスクトップショートカットとメニューショートカットが作成されるようになります。
private void createShortcuts() { IntegrationService vIntegrationService = null; try { vIntegrationService = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService"); if (!vIntegrationService.hasDesktopShortcut() || !vIntegrationService.hasMenuShortcut()) { vIntegrationService.requestShortcut(true, true, "App Menu Name"); } } catch(UnavailableServiceException ex){ ex.printStackTrace(); } }
他のヒント
Linuxと同じ問題がありますが、OS-Xで期待どおりに機能します。 TomcatとJetty Webコンテナの両方でテストしました。
したがって、それはあなたのコードが実際に正しいというかなりのチャンスです。
Eclipseを使用してWebStartアプリケーションを構築するのと同じ問題があります。 WindowsのWebStartの制限であると思いました。これらのプロパティを設定できると考えましたが、ユーザーはアプリを使用してアプリを「インストール」する必要があります。
Macにインストールする方が少し簡単です。ドックのアイコンを右クリックして、オプションをクリックしてからドックに保ちます。