由于使用了dll,我们的Java客户端应用程序需要32位的java。 64位jvm没有选项。但是我们的客户,300多个用户,需要在他们的计算机上安装64位jvm,因为另一个应用程序需要在他们的操作系统(windows)上使用64位jvm。因此,他们必须安装32位和64位jvm。单击我们的jnlp时,它会自动运行64位jvm并且我们的程序失败。 jnlp文件中是否有任何选项/语法来强制使用特定的jvm?我不是指库或nativelibs,我的意思是当点击我们的jnlp文件时,应该启动32位jvm。
在300个客户端上编辑环境路径变量是不可能/不可行的,我们需要一个全局解决方案,只需编辑我们的jnlp文件即可。这可能吗?
答案 0 :(得分:1)
您可以通过为64位指定无效的j2se版本(下面的示例中为1.0.0)强制javaws使用32位JRE,请注意需要在特定于arch的资源部分中指定j2se版本工作)。
<?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>
请注意,这是一个“肮脏的黑客”,可能会停止使用未来版本。