2016-12-15 17 views
5

मेरे पास एक SWT जावा एप्लिकेशन है जिसे मैं जावा वेब स्टार्ट के माध्यम से लॉन्च करने का प्रयास कर रहा हूं। 32 बिट संस्करण ठीक काम करता है, लेकिन कई लोगों को लॉन्च करने के लिए 64 बिट संस्करण नहीं मिल सकता है। उन्हें एक त्रुटि मिलती है जो 32 बिट जेवीएम पर 64 बिट लाइब्रेरी नहीं चला सकती है। मैंने Google और StackOverflow और अन्य लोगों को खोजा है और 64 बिट JVM में लॉन्च करने के लिए वेब स्टार्ट कैसे प्राप्त करें के बारे में कोई जवाब नहीं मिल रहा है।जावा वेब स्टार्ट और 64 बिट JVM

मैंने किसी भी भाग्य के बिना JVM विकल्प, (-d64, -J-d64) का उपयोग करने का प्रयास किया है।

क्या यह संभव है, या सिर्फ 32 बिट संस्करण तक सीमित है (आदर्श 64 बिट सबसे अच्छा है क्योंकि यह ऐप लॉग फ़ाइलों से साफ डेटा प्रदर्शित करने के लिए बहुत सारे डेटा को पार्स करेगा)? इसे काम करने की अनुमति देने के लिए मुझे अपने जेएनएलपी में बदलने की क्या ज़रूरत है?

<?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

आप दोनों एकल आर्किटेक्चर का समर्थन करने वाली एक जेएनएलपी फ़ाइल बना सकते हैं। उदाहरण के लिए:

<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 फ़ाइल है कि संबंध में सही काम करेंगे हो सकता है के रूप में ले जा सकते हैं देशी libs के लिए, कोई फर्क नहीं पड़ता कि उपयोगकर्ता क्या ओएस और वास्तुकला पर है।

भी देखें How to distinguish 32 bit from 64 bit java version in jnlp files

+1

हाँ, पर इस जो अपने मशीन पर दोनों 32 और 64 बिट JVM है उन अतिरिक्त स्मृति कि आवंटित किया जा सकता है का उपयोग कर मदद नहीं करता है। यह मुख्य कारण है कि मैं काम करने के लिए 64 बिट प्राप्त करने की कोशिश कर रहा हूं। – user2857108

+1

जेएनएलपी पहले मिलान संसाधन का उपयोग करेगा। इसलिए, पहले 64 बिट आर्क के साथ संसाधन तत्व होने के बाद, दूसरी (32 बिट) को फॉल-बैक के रूप में छोड़ दिया जाएगा। आप, 32 बिट JVM को अस्वीकार करने के लिए, 32 बिट आर्क संसाधन तत्व को हटा सकते हैं। –

संबंधित मुद्दे