我需要在Windows机器上打开基于Java 6的Java Web Start应用程序。机器安装了JRE 7,手动将JRE 6复制到Program Files
文件夹。问题在于,无论何时我想打开JWS应用程序,它都会使用Java 7打开。即使我使用JRE 6中的javaws
可执行文件,一些属性仍然引用JRE 7文件(我使用{{验证了这一点) 1}}。我怎样才能强制JRE 6用于此应用程序?
答案 0 :(得分:17)
我有基于Java 6的Java Web Start应用程序..如何才能为此应用程序强制使用JRE 6?
在version
元素中使用适当的j2se
属性。
<resources>
<!-- Any 1.6 JRE -->
<j2se version='1.6*'>
...
</resources>
此解决方案似乎不再适用于安装早期版本的JVM!
我能想到它为何无法工作的最好理由是Oracle厌倦了为早期Java版本发布安全更新 - 因此迫使每个用户使用最新的JVM。
答案 1 :(得分:12)
我意识到这是有史以来最古老的帖子,但是当我搜索类似的问题时,它就出现了。解决此问题的最简单方法(作为一个不会影响整个系统的一次性解决方案)是安装并行的旧版Java,并将jnlp拖到javaws.exe上。 (我有一个使用Java 5的网络应用程序,否则不会打开)
答案 2 :(得分:3)
我有一台安装了Windows 7的UAC控制笔记本电脑和两个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 Cache Viewer。转到Java Cache Viewer,选择应用程序列表并删除sesWebstart.jnlp(如果存在)的条目。
关闭Java Cache Viewer并转到Java控制面板。转到临时Internet文件的设置并删除缓存文件和应用程序本身。之后,关闭Java控制面板。
创建一个新的批处理文件,该文件将使用正确的Java(较旧的Java)启动sesWebstart.jnlp:
"C:\Program Files (x86)\Java\jre1.7.0_55\bin\javaws.exe" "D:\Users\christian\Desktop\sesWebstart.jnlp"
现在,sesWebstart Applet可以通过执行此批处理文件来开始。
答案 3 :(得分:3)
另一个对我有用的可行解决方案是重命名最新JRE / JDK的javaws.exe(javaws2)程序文件,因为JVM总是搜索安装的最新版本。如果您需要回滚更改,只需重命名为原始值
答案 4 :(得分:1)
我建议也添加-verbose标志。 e.g。 javaws.exe -verbose http ....
就我而言,我仍在调用一些java1.8参数(参见screenshot), 所以我不得不在Java控制面板中禁用Java 8。
答案 5 :(得分:1)
Jnlp jre设置位于控制面板中的Java设置下。
转到“控制面板”并搜索&#34; Java&#34;。就我而言,它是Java(32位)。打开它并选择Java选项卡,然后选择Java Application Runtime Settings
答案 6 :(得分:0)
你必须通过以下简单的过程手动完成,
答案 7 :(得分:0)
只需明确使用您想要的JRE中的javaws.exe
,如下所示:
C:\ Program Files \ Java \ jdk1.6.0_45 \ jre \ bin \ javaws.exe file.jnlp
但请记住其他答案,例如j2se版本设置和jnlp规范。
答案 8 :(得分:0)
我遇到了完全相同的问题。我创建了一个更改JAVA_HOME变量的bat文件,然后使用javaws运行jnlp文件,它对我有用。
bat文件的内容:
SET "JAVA_HOME=[path to your jre folder]"
javaws [path to your jnlp]
希望有所帮助:)
答案 9 :(得分:0)
只需将jnlp文件的链接拖到适当版本的javaws上即可#34;用&#34; picture how to open jnlp with javaws打开MacOS用户通常以相同的方式打开文件