2017-06-29 114 views
3

我们的java客户端应用程序需要使用dll的32位java。没有64位jvm的选项。但是我们的客户(300多个用户)需要在他们的计算机上安装64位jvm,因为另一个应用程序在其操作系统(windows)上需要64位jvm。因此他们必须安装32位和64位jvm。当点击我们的jnlp时,它会自动运行64位jvm,并且我们的程序失败。 jnlp文件中是否有任何选项/语法强制特定的jvm?我不是指库或nativelib,我的意思是当单击我们的jnlp文件时,32位jvm应该启动。Java jnlp强制使用32位版本运行

编辑300个客户端上的环境路径变量是不可能的/可行的,我们需要一个全局解决方案,只需编辑我们的jnlp文件即可。那可能吗?

回答

1

您可以强制javaws使用32位JRE,方法是指定64位的无效j2se版本(以下示例中为1.0.0,请注意,j2se版本需要在arch-specific资源部分中指定它工作)。

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase="file:///c:/jnlp" href="demo.jnlp"> 
    <information> 
     <title>Demo</title> 
    </information> 
    <security> 
     <all-permissions/> 
    </security> 
    <resources> 
     <jar href="demo.jar" /> 
    </resources> 
    <resources os="Windows" arch="amd64"> 
     <j2se version="1.0.0"/> 
    </resources>  
    <resources os="Windows" arch="x86"> 
     <j2se version="1.8+"/> 
     <jar href="win32/swt.jar"/> 
    </resources> 
    <application-desc main-class="package.to.MainClass"/> 
</jnlp> 

请注意,这是一个“肮脏的黑客”,可能会停止与未来的版本工作。

相关问题