NetBeansプラットフォーム上に構築されたWebスタートアプリケーションは、デスクトップショートカットとスタートメニュー項目を作成しません

StackOverflow https://stackoverflow.com/questions/2744923

質問

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にインストールする方が少し簡単です。ドックのアイコンを右クリックして、オプションをクリックしてからドックに保ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top