немедленно.

h2oше работал на моем ноутбуке, но я некоторое время не пользовался им (и тем временем установил новые пакеты и обновил вещи). Вчера я пытался использовать его, но это не сработало. Я стерR h2o упаковано и я переустановилh2o с нуля с

install.packages("h2o")

Я пробовал бегатьh2o с участиемh2o.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

Что объясняет9 этоh2o видит. Я нахожу странным, что это ожидает1.x.0 но версия просто9, В любом случае, кажется, мне нужно указать, чтоh2o.init() командовать1.8 Ява, но я не мог понять, как это сделать.

Я обычно используюbrew установить большинство вещей, но я никогда не используюjava так что я ничего не знаю о версиях.

Спасибо и всего наилучшего!

Ответы на вопрос(2)

Решение Вопроса

Поддерживается только Java 1.6-1.8, версия 9

Похоже, у вас установлена ​​Java 9, которая еще не поддерживается H2O. Используйте совместимую версию Java, и это исправит ошибку.

Если вы не можете или не хотите удалять Java 9, вам нужно указать H2O, какую Java вы хотели бы использовать, установивJAVA_HOME переменная окружения. Во-первых, найдите расположение Java 1.8, выполнив в оболочке следующее:

/usr/libexec/java_home -v 1.8

На моем Mac это показывает мне это:

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

Вы можете проверить, может ли R увидеть вашJAVA_HOME переменной, выполнив следующую команду:Sys.getenv("JAVA_HOME").

Если это поле пустое (и, возможно, будет, если вы используете RStudio), тогда придется проделать немного больше работы, чтобы R увиделJAVA_HOME переменная. Вы можете редактировать~/.Renviron файл для добавленияJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home или что бы это ни было на вашей машине. Затем перезапустите RStudio, и он должен работать.

 cd9829 сент. 2017 г., 19:29
Я показал, чтоdefault Ява у меня "1.8.0_121". Не уверен, где R получает эту версию 9 (и, обратите внимание, кажется, что она читает версию 9, а не 1.9, поэтому мне интересно, есть ли там проблема).
 cd9830 сент. 2017 г., 15:07
Я изменил $ JAVA_HOME, чтобы указать на/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home но проблема сохраняется. Я не знаю, как изменить Java, чтоh2o хочет позвонить!
 Erin LeDell29 сент. 2017 г., 23:51
Хорошо, извините, я пропустил это в первый раз. Из вашего последнего редактирования я вижу, что у вас установлено несколько Javas. Ты можешьудалить Java 9 или обновить свой путь, чтобы предпочесть Java 8?
 Erin LeDell01 окт. 2017 г., 05:33
Вы используете RStudio вместо командной строки R? Я заметил, что RStudio иногда не принимает переменные окружения. Вы можете увидеть, если R знает оJAVA_HOME проверяяSys.getenv("JAVA_HOME"), Если он пуст, попробуйте установить его с помощьюSys.setenv("JAVA_HOME")? Это выстрел в темноте, но может сделать свое дело ...
 cd9801 окт. 2017 г., 14:48
Да, это был ключ! RStudio по своей природе не читает переменные окружения из.bashrc (понятия не имею, в чем причина). Пожалуйста, отредактируйте свой ответ, включив в него следующую информацию, и я ее приму :). Во-первых, получить расположение 1,8 Java с/usr/libexec/java_home -v 1.8, Во-вторых, с этим местоположением редактировать~/.Renviron и добавитьJAVA_HOME=your_java_1.8_location, Запустить сноваRStudio и это работает!

в этой теме чтобы найти решение проблемы, хотя это не будет так удобно для некоторых людей.

По умолчаниюjava 1.8.x, следовательно, разh2o можно использовать, но звонитh2o изR результаты в версии 9java звонить

(Довольно неоднозначное) решение на данный момент состоит в том, чтобы начатьh2o сервер из терминала, как это

cd h2o-3.14.0.3   #navigate to wherever you have the h2o installation
java -jar h2o.jar

с этим работает нормально, я затем связать его сR без запускаh2o экземпляр:

h2o.init(startH2O = FALSE) 

Это хорошо работает, если вы в порядке с запускомh2o из терминала (может быть, единственный способ, если вы работаете в кластере), но может раздражать, если вы хотите запустить его изRStudio немедленно.

Ваш ответ на вопрос