«

Mac下的javaws,想说爱你不容易~

Mac下一般自带有JDK版本(java -version),运行javajavac一般都没有问题,但运行javaws总是会遇到让人莫名其妙的问题,特别是Jenkins的slave-agent.jnlp文件必须依赖于javaws才能启动起来。此篇博文就是遇到的问题和解决方案做一个记录。

遇到问题1:

如果Mac下直接运行javaws slave-agent.jnlp弹出如下错误

    javaws NoJava runtime present, requesting install.Unable to locate a JavaRuntime to invoke.

可以写一个脚本运行,内容如下:

    #!/bin/bash
     /System/Library/Frameworks/JavaVM.framework/Commands/javaws /your/documents/slave-agent.jnlp

保存为.sh文件,用sh命令运行此文件即可。

或者直接在命令行下输入

/System/Library/Frameworks/JavaVM.framework/Commands/javaws /your/documents/slave-agent.jnlp

来直接运行试试

如果还运行不起来,考虑清除~/Library/Caches/Java下的缓存(rm -rf ~/Library/Caches/Java),再调用脚本或javaws命令试试。

遇到问题2:

Mac下,当更新过一些东西之后或重启电脑之后,javaws又莫名的运行不了,报如下错误:

    Java Web Start splash screen process exiting ...
    Can not find message file: No such file or directory

解决方法参考: http://stackoverflow.com/questions/5763646/starting-javaws-on-mac-os-fails-with-cannot-find-message-file

其实就是需要注释掉/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist文件下的:

<!--  
        <key>JavaWebComponentVersionMinimum</key>
        <string>1.6.0_37-b06-435</string>
-->

<!--  
        <key>com.oracle.java.JavaAppletPlugin</key>
        <dict>
              <key>MinimumPlugInBundleVersion</key>
              <string>1.7.11.22</string>
         </dict>
-->

再运行问题1中的脚本试试!

如果还有谁遇到如此蛋疼的问题,请评论到此处一起讨伐之~

分享