我需要在Windows机器上打开基于Java 6的Java Web Start应用程序。 机器安装了JRE 7,将JRE 6手动复制到Program Files
夹。 问题是,无论何时我想打开JWS应用程序,都会使用Java 7打开。即使我使用JRE 6中的javaws
可执行文件,某些属性仍然会引用JRE 7文件(我通过使用javaws -verbose app.jnlp
。如何强制JRE 6只是为了这个应用程序?
我有基于Java 6的Java Web Start应用程序..如何强制JRE 6仅用于此应用程序?
在j2se
元素中使用适当的version
属性。
<resources> <!-- Any 1.6 JRE --> <j2se version='1.6*'> ... </resources>
此解决方案似乎不再适用于安装早期版本的JVM!
我能想到的最好的原因是为什么Oracle不能正常工作,Oracle正在为早期的Java版本发布安全更新而疲惫不堪,所以迫使每个用户都使用最新的JVM。
我意识到这是有史以来最古老的帖子,但是当我搜索到类似的问题时,它就出现了。 处理这个问题的最简单的方法(作为一个不会影响整个系统的一次性解决方案)是安装一个并行的Java旧版本,并将jnlp拖放到javaws.exe中。 (我有一个使用Java 5的Web应用程序,否则不会打开)
我有一个UAC控制笔记本电脑与Windows 7和两个Java版本安装(1.8和1.7)。 sesWebstart.jnlp必须以较旧的Java版本启动,在我的情况下是1.7。 这对我有用:在Java控制面板中,删除应用程序sesWebstart.jnlp(如果存在)的所有条目。 您可以在命令行中启动Java Cache Viewer:
C:\Program Files (x86)\Java\jre1.7.0_55\bin> javaws -viewer
该命令启动Java控制面板和Java高速缓存查看器。 转到Java Cache Viewer,选择应用程序列表并删除sesWebstart.jnlp(如果存在)条目。
关闭Java Cache Viewer并转到Java控制面板。 转到Internet临时文件的设置,并删除缓存文件和应用程序本身。 之后,关闭Java控制面板。
创建一个新的批处理文件,用正确的Java(旧的)启动sesWebstart.jnlp:
"C:\Program Files (x86)\Java\jre1.7.0_55\bin\javaws.exe" "D:\Users\christian\Desktop\sesWebstart.jnlp"
现在,sesWebstart Applet可以通过执行这个批处理文件来启动。
另一个可行的解决方案是为我重新命名最近的JRE / JDK的javaws.exe(javaws2)程序文件,因为JVM总是搜索已安装的最新版本。 如果您需要回滚更改,只需重新命名为原始值即可
我会建议添加-verbose标志。 例如 javaws.exe -verbose http ….
在我的情况下,我仍然在调用一些java1.8参数(见截图 ),所以我也必须在Java控制面板中禁用Java 8。
只要明确地使用你想要的JRE中的javaws.exe
,就像这样:
C:\ Program Files \ Java \ jdk1.6.0_45 \ jre \ bin \ javaws.exe file.jnlp
但请记住其他答案,如j2se版本设置和jnlp规范。
我有同样的问题。 我创建了一个改变JAVA_HOME变量的bat文件,然后使用javaws来运行jnlp文件,它对我很有帮助。
bat文件的内容:
SET "JAVA_HOME=[path to your jre folder]" javaws [path to your jnlp]
希望能帮助到你 :)
Jnlp jre设置在“控制面板”中的Java设置下。
转到控制面板并搜索“Java”。 在我的情况下,它是Java(32位)。 打开它并选择Java选项卡,然后选择Java应用程序运行时设置
只需将jnlp文件的链接拖到适当版本的javaws上,然后“打开” 图片如何用javaws打开jnlp MacOS用户通常以相同的方式打开文件
你必须手工做下面的简单过程,