2016-12-15 14 views
5

Java Web Startから起動しようとしているSWT Javaアプリケーションがあります。 32ビット版は正常に動作しますが、多くの人が64ビット版を起動することはできません。 32ビットJVM上で64ビットライブラリを実行できないというエラーが表示されます。私はGoogleやStackOverflowなどを検索しており、64ビットJVMでWeb Startを起動する方法についての回答は見つかりません。Java Web Startと64ビットJVM

私はJVMオプション(-d64、-J-d64)を無駄なく使ってみました。

これも可能ですか、32ビット版に制限しています(理想的にはこのアプリケーションはログファイルの大量のデータを解析して正常に表示するので最適です)。これを有効にするにはJNLPで何を変更する必要がありますか?

<?xml version = '1.0' encoding = 'windows-1252'?> 
<jnlp spec="1.0+" 
     codebase="http://example.com/confluence/download/attachments/212175616/" 
     href="LogMiner_64Bit.jnlp"> 
    <information> 
      <title>LogMiner 64 Bit</title> 
      <vendor> TECH</vendor> 
      <description>Parse Log messages </description> 
      <shortcut online="true"> 
       <desktop/> 
       <menu submenu="FA"/> 
      </shortcut> 
      <offline-allowed/> 
    </information> 
    <menu>64Bit</menu> 
    <security> 
      <all-permissions/> 
    </security> 
    <resources> 
      <java version="1.7+" java-vm-args="-J-d64"/> 
      <jar href="LogMiner64.jar" main="true" download="eager"/> 
    </resources> 
    <application-desc main-class="com.logMiner.ui.LogMiner"/> 
</jnlp> 

答えて

4

両方のアーキテクチャをサポートする単一のjnlpファイルを作成できます。たとえば、次のように

<resources arch="amd64 x86_64"> 
    <jar href="LogMiner64.jar"/> 
</resources> 

<resources arch="x86 i386"> 
    <jar href="LogMiner32.jar"/> 
</resources> 

こうos="Linux"os="Mac"os="Windows"

にあなたがに関して正しいことを行うだろう、単一のJNLPファイルを持つことができるなどのリソースタグはまた、OSの属性を取ることができ、必要な場合ユーザがどのOSとアーキテクチャにいるかに関係なく、ネイティブのlibに変換することができます。

How to distinguish 32 bit from 64 bit java version in jnlp files

+1

はいも参照してください、これは割り当てることのできる余分なメモリを使用することが自分のマシン上で両方の32&64ビットJVMを持つユーザーを支援しません。これが私が64ビットを動かそうとしている主な理由です。 – user2857108

+1

JNLPは最初に一致するリソースを使用します。したがって、最初に64ビットアーチのresources要素を持つと、2番目(32ビット)がフォールバックのままになります。もちろん、32ビットJVMを許可しないように32ビットarchリソースの要素を削除することもできます。 –

関連する問題