环境与报错
操作系统:Mac OS X Version 10.7.5 (Lion)
测试文件:koala.jnlp (for EVO)
报错信息:
(1)双击打开:
(2)终端 javaws 命令打开:
No Java runtime present, requesting install.
Unable to locate a Java Runtime to invoke.
而你确实已经从 java.com 下载并安装了最新版本的 JRE (Java Runtime Environment),上述问题仍然出现。
双击打开 jnlp 文件的默认程序是 javaws (java web start.app) 。由于苹果认为 java 存在某些严重的安全问题(婆说婆理公说公理~),所以自 OS X 10.5 以上的更新中 (Apple Java 1.7) 都禁用了 WebStart 的功能。这就是产生上面问题的罪魁祸首。
解决办法:使用旧版本 - Apple Java 1.6 中的 javaws [1]
更新到 1.7 后,系统并未删除 1.6 的文件,所以可以将系统的 javaws 用软链接重新指向 1.6 的 javaws 即可。
打开终端:
[foo@Mac]$ which javaws
/usr/bin/javaws
[foo@Mac]$ ll /usr/bin/javaws
lrwxr-xr-x 1 root wheel 76B Oct 22 22:40 /usr/bin/javaws -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws
上面 javaws 所指向的正是 1.7 版本下的路径。要把它重新指向 1.6 版的:
sudo rm /usr/bin/javaws
sudo ln -s /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/javaws /usr/bin/javaws
再双击打开 koala.jnlp 文件,成功运行!
解决办法之二:终端上直接运行 Sun JRE 的 javaws 来打开 .jnlp 文件
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/javaws koala.jnlp
[1] 参考链接: http://blog.hani-ibrahim.de/en/java-webstart.html