2013-11-25 128 views
1

我在OS X 10.7.5上运行,并且安装了Java 6和Java 7。 我有一个bash shell的设置运行Java 6,但是当我启动JNLP文件 我看到了Java 7的启动画面,并在Java控制台我看强制javaws在Mac OS X上使用Java 6 10.7

Java Web Start 10.25.2.15 
Using JRE version 1.7.0_25-b15 Java HotSpot(TM) 64-Bit Server VM 

发生这种情况,即使我用的是全路径javaws的

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws foo.jnlp 

只是为了验证这一点显示了外壳使用Java 6:

$ echo $JAVA_HOME 
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home 
$ type -all javaws 
javaws is /usr/bin/javaws 
$ ls -l /usr/bin/javaws 
lrwxr-xr-x 1 root wheel 76 Nov 20 10:13 /usr/bin/javaws -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws* 
$ type -all java 
java is /usr/bin/java 
$ ls -l /usr/bin/java 
lrwxr-xr-x 1 root wheel 74 Nov 20 10:13 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java* 
$ java -fullversion 
java full version "1.6.0_65-b14-462" 

回答

0

请注意javaws的使用JRE,而不是JDK。 因此,请卸载存在的JRE,我认为它是在您首次运行JNLP期间安装的,然后下载JRE 1.6 from Oracle web site并再次运行JNLP文件。

当然,我无法测试它,只是一个演绎,希望能帮助你。

+1

Oracle没有用于Mac OS X的Java 1.6,仅1.7。 Java 6版本来自Apple。我需要安装1.6和1.7并能够来回切换。 – dlipofsky

5

这对我的作品在Mac OS X 10.9,Java版本1.6.0_65:

$ /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/javaws foo.jnlp 

JDK 7 Installation for Mac OS X讨论,你可以使用java_home避免“硬编码的完整路径Java命令行工具“。

$ /usr/libexec/java_home -v 1.6 --exec javaws foo.jnlp 
+0

你给作品的完整路径。只要您还设置PATH,以使JAVA_HOME/bin位于任何其他Java之前,就可以设置JAVA_HOME。 – dlipofsky

+0

我的困惑是部分,因为 /系统/库/框架/ Java虚拟机框架/版本/ CurrentJDK链接到1.6.0 /系统/库/ Frameworks/Java虚拟机框架/版本/当前链接到A 而且我有不知道A是什么。我假设它是1.6.0,因为该目录中的其他所有内容都是1.6.0(1.7安装在完全不同的地方) ,并且由于CurrentJDK肯定是1.6.0。伟大的命名方案,苹果。 和/ usr/bin/java *链接到Current,而不是CurrentJDK。 – dlipofsky

+0

另一个奇怪的事情,如果我检查 “允许所有应用程序从......签名” 复选框,它使JVM与1.6崩溃。所以我想我不会那么做:) – dlipofsky

相关问题