简体   繁体   中英

Unsupported major.minor version on Mac OS X El Capitan

在线上针对El Capitan的主要次要版Java的解决方案不正确之后,我看到了几个解决方案,这些解决方案使您无法禁用无根,我不喜欢它的声音,或者只是在OS X El Capitan中不再工作。

When trying to run webdriver-manager start on El Capitan, you may get an error saying:

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

The recommended fix for this online is to change the symlink that Mac OS X has to Java, which you can find by running echo $JAVA_HOME in the terminal.

This is pointing to the incorrect folder, and the error is because the application was compiled with a higher version of JRE than the machine is running in the terminal.

You should go to Oracle, and download the latest JRE version ( http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html )

After this has been installed, you will have Java 8 on your machine, but it will not update the terminal properly. If you run java -version in your terminal, you'll see Java Version "1.6" , you want this to say Java Version "1.8" . The previous way to do this was to change the symlink manually, however, since El Capitan, Apple have made certain folders unchangable even to admin users, with their Rootless install. This includes the /usr folder.

There are two ways to fix this, the first is dangerous, and what everyone else seems to recommend. The second, is safer, and what I am putting here.

If you go to your System Preferences -> Java -> Java -> View... -> System and copy the Path field.

It will look something similar to the following:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java

We want most of this path, except the /bin/java on the end.

So your path should now be copied as:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

Run the following command in the terminal, replacing [PATH] with the path you have from above.

export JAVA_HOME="[PATH]"

and run that in the terminal.

Afterwards, run java -version again, and it should now say Java Version "1.8"

Now, webdriver-manager start should succeed.

Adding the following line to ~/.bash_profile worked for me:

export JAVA_HOME="$(/usr/libexec/java_home --version 1.8)"

You might have to restart your shell for these changes to reflect or just run:

. ~/.bash_profile

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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