当前位置: 首页 > 面试题库 >

从R调用时,h2o无法连接:Java版本不匹配

陈胤
2023-03-14
问题内容

h2o以前可以在笔记本电脑上工作,但我有一段时间没有使用它了(同时已经安装了新软件包并更新了内容)。昨天我尝试使用它,但是没有用。我删除了R
h2o打包的文件,并h2o从头开始重新安装

install.packages("h2o")

我尝试运行h2oh2o.init()但它给了我这个错误

java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

Starting H2O JVM and connecting: ............................................................ 
[1] "localhost"
[1] 54321
[1] TRUE
[1] -1
[1] "Failed to connect to localhost port 54321: Connection refused"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (7) Failed to connect to localhost port 54321: Connection refused
[1] 7
Error in h2o.init() : H2O failed to start, stopping execution.

当我查看错误日志时,它显示

Only Java 1.6-1.8 supported, version is 9

我试图寻找更多信息,并且我认为该错误是由第1836行的以下代码触发的:

if (version != null && !(version.startsWith("1.6") || version.startsWith("1.7") || version.startsWith("1.8"))) {
  System.err.println("Only Java 1.6-1.8 supported, version is " + version);
  return true;

因此,似乎h2o正在检查以1.6、1.7和1.8开头的版本,但由于某种原因我的版本以9开头!然而,在终端上,java -version

openjdk version "1.8.0_121"
OpenJDK Runtime Environment (Zulu 8.20.0.5-macosx) (build 1.8.0_121-b15)
OpenJDK 64-Bit Server VM (Zulu 8.20.0.5-macosx) (build 25.121-b15, mixed mode)

which java

/Users/myusername/anaconda3/bin/java

------------编辑-------

更多信息:/usr/libexec/java_home -V

Matching Java Virtual Machines (4):
    9, x86_64:  "Java SE 9" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
    1.8.0_144, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
    1.8.0_51, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
    1.8.0_25, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

这也解释了9h2o是看到。我觉得它很奇怪,1.x.0但是版本是9。无论如何,似乎我都需要将该h2o.init()命令指向1.8Java,但是我不知道该怎么做。

我通常brew用来安装大多数东西,但是我从未使用过,java所以我对版本一无所知。

谢谢,最好的!


问题答案:

您报告的错误说:

仅支持Java 1.6-1.8,版本为9

好像您已经安装了Java 9,H2O尚不支持。使用兼容版本的Java,它将解决该错误。

如果您不能卸载Java 9,则需要通过设置JAVA_HOME环境变量告诉H2O您要使用哪种Java 。首先,通过在shell中执行以下命令来获取Java
1.8的位置:

/usr/libexec/java_home -v 1.8

在我的Mac上,它显示了以下内容:

/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

您可以JAVA_HOME通过运行以下命令来检查R是否可以看到您的变量:Sys.getenv("JAVA_HOME")

如果那是空白(如果您使用的是RStudio,则可能是空白),则必须做更多的工作才能让R看到JAVA_HOME变量。您可以编辑~/.Renviron要添加的文件JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home计算机上的任何位置。然后重新启动RStudio,它应该可以工作。



 类似资料:
  • 由于java的版本,我无法在R中启动h2o并收到以下错误 H2O还没有开始跑步,现在开始... 注意:如果出现错误,请查看以下日志文件:C:\Users\Vaibhav\AppData\Local\Temp\RtmpMBUt0r\file1db069d01678/h2o_Vaibhav _started_from_r。输出C:\Users\Vaibhav\AppData\Local\Temp\Rt

  • 我一直使用Mac电脑,不记得以前遇到过这种情况,所以我不确定自己做错了什么。互联网上已经有一些问题了,但我还没有找到解决办法。 我刚买了一台新的mac电脑,我正在尝试使用rJava java--version java10.0.1 2018-04-17Java(TM)SE运行时环境18.3(构建10.0.1 10)JavaHotSpot(TM)64位服务器VM 18.3(构建10.0.1 10,混

  • 问题内容: 我想从Java调用R脚本。我已经对该主题进行了google搜索,但是我看到的几乎所有结果都需要我向某些第三方库添加依赖项。任何人都可以向我展示一种在不添加任何依赖项的情况下完成同一件事的好方法吗? 我正在使用Windows计算机,因此也许我可以使用命令行来启动R(如果尚未打开)并运行特定的R脚本。但是我从未写过命令行代码(或从Java调用过),因此我需要代码示例。 我将使用命令行思路包

  • 问题内容: 我正在尝试编写一个程序在我的Web应用程序上进行自动化测试。为此,我使用HttpURLConnection打开了一个连接。 我要测试的页面之一执行302重定向。我的测试代码如下所示: 因此,假设urlToSend是http://www.foo.com/bar.jsp,并且此页面将您重定向到http://www.foo.com/quux.jsp。我的println语句应打印出http:/

  • null 我确信我已经在127.0.0.1:27017启动了数据库服务,并且可以用shell和非异步方法连接。错误: PrimaryServerSelector没有从群集描述中选择服务器ClusterDescription{type=unknown,connectionmode=single,all=[ServerDescription{address=localhost:27017,type=u

  • 我需要一个简单的Java服务,它在系统启动时启动,并使用共享库与一些使用POSIX线程的功能。在实现JNI接口时,我遇到了一个问题,它不允许我从本地代码调用Java方法。GetMethodID()返回not NULL,所以我认为它做得很好。也没有任何可疑的错误可以帮助。所以我在log中添加了很多输出,并为此准备了一个简单的java测试。(下面列出了所有代码,但是project也可以在github的