(Все еще) неподдерживаемая версия major.minor на Mac OS X El Capitan [дубликат]

Проблема с «контекстом»

Термин «контекст» иногда используется для ссылки на объект, на который ссылается this . Его использование неуместно, потому что оно не подходит ни семантически, ни технически с помощью ECMAScript в этом .

«Контекст» означает обстоятельства, окружающие что-то, что добавляет смысл , или некоторая предшествующая и следующая информация, которая дает дополнительный смысл. Термин «контекст» используется в ECMAScript для ссылки на контекст выполнения , который является всеми параметрами, областью действия и этой в рамках некоторого исполняемого кода.

Это показано в разделе 10.4.2 ECMA-262 :

Установите значение ThisBinding на то же значение, что и ThisBinding для контекста выполнения вызова

, в котором четко указано, что этот является частью контекста выполнения.

Контекст выполнения предоставляет информацию, которая добавляет смысл в код, который выполняется , Он содержит гораздо больше информации о том, что только thisBinding .

Таким образом, значение этого не является «контекстом», это всего лишь одна часть выполнения контекст. Это, по сути, локальная переменная, которая может быть задана вызовом любого объекта и в строгом режиме для любого значения вообще.

13
задан Bowersbros 10 December 2015 в 13:32
поделиться

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 должен преуспеть.

46
ответ дан Michael Ohlrogge 21 August 2018 в 18:40
поделиться
  • 1
    Это сработало для меня, но мне также нужно добавить export JAVA_HOME="[PATH]" в мой .bash_profile. Если нет, каждый раз, когда я перезапускаю путь, возвращаемый обратно к 1.6. – Ryan 12 September 2016 в 20:52
Другие вопросы по тегам:

Похожие вопросы: