如何为单个JNLP应用强制指定1.8.0_191(x86_64)版本JRE
仅为当前JNLP应用强制指定1.8.0_191(x86_64)JRE的实现方法
有两种无全局影响的方案,按需选择即可:
方案1:修改本地JNLP文件的版本匹配规则(最省心,后续双击文件就自动调用对应版本)
- 把链接上的
app.jnlp下载到本地磁盘,不要直接从浏览器点击触发启动 - 用文本编辑器打开本地的JNLP文件,找到
<resources>节点下的<j2se>标签。原标签的version="1.8.0+"是范围匹配规则,会自动拉取本地已安装的最高版本1.8系列JRE,也就是当前优先级更高的x86版1.8.0_231。直接把version属性改成精确匹配值1.8.0_191,同时删掉指向自动下载地址的href属性(避免触发远程JRE下载逻辑),修改后的标签如下:
<j2se version="1.8.0_191" java-vm-args="-Djava.net.preferIPv4Stack=true -Xms2g -Xmx6g -Dsun.java2d.noddraw=true -Dfile.encoding=UTF8"/>- 保存文件后双击启动,Java Web Start会严格匹配本地已注册的版本号为1.8.0_191、架构为x86_64的JRE,不会调用x86版的1.8.0_231。
- 把链接上的
方案2:命令行指定JRE启动(完全不改JNLP内容,零配置侵入)
直接打开命令提示符,用1.8.0_191 x64版本自带的javaws启动器加载JNLP文件即可,命令格式如下:"C:\Program Files\Java\jre1.8.0_191\bin\javaws.exe" "你的本地JNLP文件完整路径"举个例子,如果JNLP存在D盘根目录,命令就是:
"C:\Program Files\Java\jre1.8.0_191\bin\javaws.exe" "D:\app.jnlp"
注意:不要通过Java控制面板修改全局JRE优先级顺序,该操作会影响所有JNLP应用的默认启动版本,无法实现「仅单个应用指定版本」的需求。
内容的提问来源于stack exchange,提问作者Arbelac
相关产品推荐
相关产品推荐

