简体   繁体   English

使用Oracle 1.8.0 JVM的OS X 10.10中出现“无Java运行时”错误

[英]“No Java runtime” error in OS X 10.10 using Oracle's 1.8.0 JVM

I've tried 3 different Macs running OS X 10.10, R 3.1.2, Java 1.8.0_25, and rJava 0.9-7. 我已经尝试了3种不同的Mac,它们分别运行OS X 10.10,R 3.1.2,Java 1.8.0_25和rJava 0.9-7。 In all three cases rJava installs from source without error but after running .jinit(), fails to detect Java and prompts to install Java 6 from apple. 在这三种情况下,rJava都从源安装,没有错误,但是在运行.jinit()之后,无法检测到Java并提示从apple安装Java 6。

Something similar happens with Netlogo 5.1.0: Netlogo 5.1.0也会发生类似的情况:

在此处输入图片说明

I've spent hours researching online, but haven't yet found a solution and tried various things like manually setting JAVA_HOME and LD_LIBRARY_PATH to no avail. 我已经花了数小时在网上进行研究,但是还没有找到解决方案,而是尝试了各种尝试,例如手动将JAVA_HOME和LD_LIBRARY_PATH设置为无效。

R CMD javareconf
Java interpreter : /usr/bin/java
Java version : 1.8.0_25
Java home path : /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
...
~ % echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre
~ % echo $LD_LIBRARY_PATH
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/server

~ % R CMD INSTALL rJava_0.9-7.tar.gz
~ % R

library('rJava')
.jinit()
No Java runtime present, requesting install.

I suspect this has to do with Oracle, because rJava loads the correct JVM, but Oracle's code attempts to fall back to Apple Java or something like that. 我怀疑这与Oracle有关,因为rJava加载了正确的JVM,但是Oracle的代码尝试回退到Apple Java或类似的东西。

Any ideas? 有任何想法吗?

These apps rely on Apple´s old JVM and support, which is gone on Yosemite. 这些应用程序依赖于Apple的旧JVM和支持,而优胜美地则不再支持。 Sun´s JDK and JRE do not include the same "bridge" code to run these apps so OSX you still ask you to install the old Apple provided JRE so they can be run. Sun的JDK和JRE不包含用于运行这些应用程序的相同“桥”代码,因此OSX仍要求您安装旧的Apple提供的JRE,以便可以运行它们。

Until these apps are made not to rely on Apple´s JRE there is nothing else you can do other than installing the legacy Java support. 在使这些应用程序不依赖Apple的JRE之前,除了安装旧版Java支持之外,您将无法做其他任何事情。

Following the link from sdza , I found the solution. 跟随sdza的链接,我找到了解决方案。 You need to install Apple's Java, which will then actually let you use Oracle's Java as well. 您需要安装Apple的Java,然后才能实际使用Oracle的Java。 Just install this: https://support.apple.com/kb/DL1572 and it should magically start working. 只需安装: https : //support.apple.com/kb/DL1572 ,它应该神奇地开始工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM