【发布时间】:2016-05-13 06:01:06
【问题描述】:
这是this question的后续。
MacOS X 在/usr/bin 下有java 命令。如果从 Oracle 安装 JRE,它就不起作用 - 声称没有 Java 运行时,并提供下载和安装 Apple 的运行时。但是如果你第一次运行
export JAVA_HOME=/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
然后java 按预期工作。这就是 Oracle JRE 自行安装的地方。
现在我想在进程内使用 Oracle Java VM,但我不能 - 即使设置了 JAVA_HOME,也会不断弹出“您需要 Java 运行时”错误消息。
链接JavaVM 框架会导致应用启动时出现消息,甚至在 main() 之前。
尝试动态加载 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/server/libjvm.dylib 并调用 JNI_CreateJavaVM 在方法调用期间会导致相同的消息。
编辑:毕竟,java 命令以某种方式做到了。我用调试器四处寻找,它确实在某些时候调用了 JNI_CreateJavaVM。我什至模仿了这些论点(还有一个,-Dsun.java.launcher=SUN_STANDARD),没有任何区别。
【问题讨论】: