2012-03-06 23 views
2

英語ではないWindowsXPのバージョンでショートカットを作成する際に問題があります。Java Web Start - 複数のショートカット

「スタートアップ」メニューにショートカットを追加すると、ユーザーがログオンするたびにアプリケーションが実行されます。

だから私はやった:

<shortcut online="true"> 
    <desktop/> 
    <menu submenu="Startup"/> 
</shortcut> 

しかし、ポルトガル語WindowsXPのでは、例えば、正しいサブメニューではなく、「スタートアップ」の「Inicializar」にする必要があります。

ので、そのアプリケーションのユーザーは、Windowsの英語やポルトガル語版を持っていることを考えると、私はそのようなことが必要です。

<shortcut online="true"> 
    <desktop/> 
    <menu submenu="Startup"/> 
</shortcut> 
<shortcut online="true"> 
     <desktop/> 
     <menu submenu="Inicializar"/> 
</shortcut> 

をしかし、それは動作しません。

誰でも手助けできますか?

ありがとうございました。

+0

私はさまざまな言語に異なるjnlpsを提供する必要があると思います。 – alexvetter

+0

チップをありがとう! –

答えて

3

JNLP形式は、resources要素のロケールによるダウンロードのパーティション化をサポートしていますが、shortcuts要素(メモリからは - 確かに確認するためにJaNeLAを使用しないでください)をサポートしています。

代わりに、6.0.18で導入されたIntegrationServiceを参照する必要があります。特に、requestShortcut(desktop,menu,submenu) の方法。このメソッドは成功/失敗を示すためにbooleanを返します。

  1. submenuのための文字列がから推測されることがあります。
    • user.language
    • Locale.getDefault()
    • シンプルなソリューション - ユーザー尋ねる:オプション区画で知られている変異型の
      1. 編集可能なコンボボックスを。
      2. スタートメニューのどこかを指すファイルチューザー。
+0

答えをありがとう。しかし、私は2つのjnlpsをクライアントに提供しました。 –

3

私は私のアプリでこれをやった:

public static void main(String[] args) { 
     IntegrationService is = null; 
     String osName = System.getProperty("os.name"); 

     try { 
      is = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService"); 
     } catch (UnavailableServiceException use) { 
      use.printStackTrace(); 
     } 
     if (!is.hasMenuShortcut()) { 
      if (osName.equals("Windows 7")) { 
       is.requestShortcut(false, true, "Startup"); 
      } else { 
       is.requestShortcut(false, true, "Inicializar"); 
      } 
     } 
     SystemTrayTest main = new SystemTrayTest(); 
    } 

ように、Windows XPのショートカットは "Inicializar" と "スタートアップ" で、Windows 7で作成されます。

+1

'if(!is.hasMenuShortcut()){' isが 'null'の場合、NPEが発生します。そのコードは 'try'の中で動かすべきです。代わりに、 'if(is!= null &&!is.hasMenuShortcut()){' –

関連する問題