Следуя решениям онлайн для майорной версии Java, некорректной на El Capitan, я увидел несколько решений, которые заставили вас либо отключить rootless, что мне не понравилось, либо просто не работали в OS X Эль Капитан.
Неподдерживаемая версия major.minor для Mac OS X El Capitan
Ответ 1
При попытке запустить webdriver-manager start
на El Capitan вы можете получить сообщение об ошибке:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/openqa/grid/selenium/GridLauncher : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Selenium Standalone has exited with code 1
Рекомендуемое исправление для этого онлайн - это изменить символическую ссылку, которую Mac OS X имеет на Java, которую вы можете найти, запустив echo $JAVA_HOME
в терминале.
Это указывает на неправильную папку, и ошибка связана с тем, что приложение было скомпилировано с более высокой версией JRE, чем машина работает в терминале.
Вы должны пойти в Oracle и загрузить последнюю версию JRE (http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html)
После того, как это будет установлено, у вас будет Java 8 на вашем компьютере, но он не будет правильно обновлять терминал. Если вы запустите java -version
в своем терминале, вы увидите Java Version "1.6"
, вы хотите, чтобы это говорило Java Version "1.8"
. Предыдущий способ сделать это состоял в том, чтобы изменить символическую связь вручную, однако, поскольку El Capitan, Apple, сделали определенные папки неспособными даже пользователям admin, с их установкой Rootless. Это включает в себя папку /usr.
Есть два способа исправить это, первое опасно и то, что все остальные рекомендуют. Второй, более безопасный и то, что я помещаю здесь.
Если вы перейдете к System Preferences -> Java -> Java -> View... -> System
и скопируете поле "Путь".
Он будет выглядеть примерно так:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
Мы хотим большую часть этого пути, кроме /bin/java
в конце.
Итак, теперь ваш путь должен быть скопирован как:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Запустите следующую команду в терминале, заменив [PATH] на путь, который вы указали выше.
export JAVA_HOME="[PATH]"
и запустите это в терминале.
Затем снова запустите java -version
, и теперь он должен сказать Java Version "1.8"
Теперь webdriver-manager start
должен преуспеть.
Ответ 2
Добавление следующей строки в ~/.bash_profile работает для меня:
export JAVA_HOME="$(/usr/libexec/java_home --version 1.8)"