6

Java Web Start を使用して起動される NetBeans プラットフォーム アプリケーションを作成しました。Netbeans 6.8 で「Build JNLP Application」コマンドを使用して WAR ファイルをビルドしました。

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

4

3 に答える 3

3

javax.jnlp.IntegrationService (JDK 6.1.18 以降で利用可能) を使用して、これを解決することができました。

このクラスは、JDK サンプル ディレクトリにある jnlp.jar にあります: /sample/jnlp/servlet/jnlp.jar

次のコードは、デスクトップ ショートカットとメニュー ショートカットが確実に作成されるようにします。

    プライベートボイド createShortcuts() {
        IntegrationService vIntegrationService = null;
        試す {
            vIntegrationService = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService");

            if (!vIntegrationService.hasDesktopShortcut() || !vIntegrationService.hasMenuShortcut()) {
                vIntegrationService.requestShortcut(true, true, "アプリ メニュー名");
            }
        } catch (UnavailableServiceException ex){
            ex.printStackTrace();
        }
    }
于 2010-05-07T11:04:03.030 に答える
1

Eclipseを使用してWebStartアプリケーションを構築するのと同じ問題があります。これはWindows上のWebStartの制限だと思いました。これらのプロパティを設定できると思いましたが、ユーザーがそれらを使用するには、アプリを「インストール」する必要があります。

Macにインストールする方が少し簡単です。ドックのアイコンを右クリックし、[オプション]、[ドックに保持]の順にクリックします。

于 2010-04-30T13:57:16.637 に答える
1

Linux でも同じ問題がありますが、OS-X でも期待どおりに動作します。Tomcat と Jetty Web コンテナーの両方でテストしました。

したがって、コードが実際に正しい可能性は十分にあります。

于 2010-04-30T15:23:14.007 に答える