Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaWebStart和64位JVM_Java_Jnlp - Fatal编程技术网

JavaWebStart和64位JVM

JavaWebStart和64位JVM,java,jnlp,Java,Jnlp,我有一个SWT Java应用程序,我正试图通过JavaWebStart启动它。32位版本运行良好,但许多人无法启动64位版本。他们得到一个错误,说不能在32位JVM上运行64位库。我搜索过Google、StackOverflow和其他网站,但找不到关于如何在64位JVM中启动Web Start的答案 我尝试过使用JVM选项(-d64,-J-d64),但没有任何运气 这是可能的,还是我只是将其限制为32位版本(最好是64位,因为此应用程序将解析日志文件中的大量数据,以便清晰地显示)?我需要在JNL

我有一个SWT Java应用程序,我正试图通过JavaWebStart启动它。32位版本运行良好,但许多人无法启动64位版本。他们得到一个错误,说不能在32位JVM上运行64位库。我搜索过Google、StackOverflow和其他网站,但找不到关于如何在64位JVM中启动Web Start的答案

我尝试过使用JVM选项(-d64,-J-d64),但没有任何运气

这是可能的,还是我只是将其限制为32位版本(最好是64位,因为此应用程序将解析日志文件中的大量数据,以便清晰地显示)?我需要在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>

LogMiner 64位
技术人员
解析日志消息
64位

您可以创建一个支持这两种体系结构的jnlp文件。例如:

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

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

如有必要,resources标签还可以采用os属性,如
os=“Linux”
os=“Mac”
os=“Windows”

通过这种方式,您可以拥有一个单独的jnlp文件,无论用户使用的是什么操作系统和体系结构,该文件都能正确处理本机libs


另请参见

是,但这并不能帮助机器上同时具有32位和64位JVM的用户利用可以分配的额外内存。这是我尝试让64位工作的主要原因。JNLP将使用第一个匹配的资源。因此,先使用64位arch的resources元素,然后使用第二个(32位)作为后备。当然,您可以删除32位arch resources元素以禁止32位JVM。