我使用Debian。我使用http://ppa.launchpad.net/webupd8team/java/ubuntu上提供的脚本安装了Java 8及更高版本的Java 6。
我运行了一个使用Java 6的应用程序.file.pl包含这样一个部分:
<resources>
<j2se version="1.6.0+" href="http://java.sun.com/products/autodl/j2se"
initial-heap-size="128M" max-heap-size="400M"/>
我从Java 6文件夹中调用javaws。我看到飞溅了一会儿然后停下来(我在控制台得到提示,没有其他事情发生)。我调整了我的env变量以确保问题不存在。一些细节:
➜ java-6-oracle set | grep jvm
DERBY_HOME=/usr/lib/jvm/java-6-oracle/db
J2REDIR=/usr/lib/jvm/java-6-oracle/jre
J2SDKDIR=/usr/lib/jvm/java-6-oracle
JAVA_HOME=/usr/lib/jvm/java-6-oracle
OLDPWD=/usr/lib/jvm/java-6-oracle/jre
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-6-oracle/bin:/usr/lib/jvm/java-6-oracle/db/bin:/usr/lib/jvm/java-6-oracle/jre/bin
PWD=/usr/lib/jvm/java-6-oracle
path=( /usr/local/bin /usr/bin /bin /usr/local/games /usr/games /usr/lib/jvm/java-6-oracle/bin /usr/lib/jvm/java-6-oracle/db/bin /usr/lib/jvm/java-6-oracle/jre/bin )
➜ java-6-oracle ./jre/javaws/javaws -verbose ~/file.pl
Java(TM) Web Start 1.6.0_45 Launching: /usr/lib/jvm/java-8-oracle/jre/bin/java
/usr/lib/jvm/java-8-oracle/jre/bin/java
-Xbootclasspath/a:/usr/lib/jvm/java-6-oracle/jre/lib/javaws.jar:/usr/lib/jvm/java-6-oracle/jre/lib/deploy.jar:/usr/lib/jvm/java-6-oracle/jre/lib/plugin.jar
-classpath
/usr/lib/jvm/java-6-oracle/jre/lib/deploy.jar
-Djava.security.policy=file:/usr/lib/jvm/java-6-oracle/jre/lib/security/javaws.policy
-DtrustProxy=true
-Xverify:remote
-Djnlpx.home=/usr/lib/jvm/java-6-oracle/jre/bin
-Dsun.awt.warmup=true
-Djnlpx.origFilenameArg=/home/me/file.pl
-Djnlpx.remove=true
-Djnlpx.splashport=38511
-Djnlpx.jvm=/usr/lib/jvm/java-8-oracle/jre/bin/java
com.sun.javaws.Main
/tmp/javawMxZTga
我看到调用了incorect jvm版本。为什么会这样?
编辑: 它不是Webstart runs with wrong version of JRE的副本我没有使用浏览器运行程序。我的Javas都是64位。
答案 0 :(得分:1)
问题是这个丑陋的j2se版本标签。它定义了参数用于某个JVM版本,但也允许使用哪些版本。您定义了1.6.0+,允许在java 6之后的任何内容。如果您想将其限制为1.6,则可以使用“1.6 *”。