2015-12-10 9 views
12

Po rozwiązaniach online dla mniej ważnej wersji Javy na El Capitan, zobaczyłem kilka rozwiązań, które spowodowały, że albo wyłączyłeś tryb rootless, który nie podobał mi się dźwiękom lub po prostu nie działał już w OS X El Capitan.Nieobsługiwana wersja major.minor na Mac OS X El Capitan

+2

Jakie jest twoje pytanie? – EluciusFTW

+2

Nie ma ani jednego. To jest samodzielna odpowiedź, która może pomóc innym, którzy mają ten sam problem, ponieważ spędziłem kilka godzin szukając rozwiązania i opublikowałem je poniżej. – Bowersbros

Odpowiedz

41

Kiedy próbuje uruchomić webdriver-manager start na El Capitan, może pojawić się błąd mówiąc:

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 

Zalecana poprawka dla tej gry online jest zmiana dowiązania że Mac OS X ma na Java, które można znaleźć przez uruchomienie echo $JAVA_HOME w terminalu.

Wskazuje nieprawidłowy folder, a błąd jest spowodowany tym, że aplikacja została skompilowana z wyższą wersją środowiska JRE niż w terminalu.

należy udać się do Oracle i pobrać najnowszą wersję JRE (http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html)

Po to został zainstalowany, trzeba będzie Java 8 na komputerze, ale nie aktualizuje terminal prawidłowo. Jeśli uruchomisz java -version w swoim terminalu, zobaczysz Java Version "1.6", chcesz to powiedzieć Java Version "1.8". Poprzednim sposobem na to było ręczne zmienienie dowiązania symbolicznego, jednak od czasu El Capitan Apple uniemożliwiło niektórym folderom nawet użytkownikom adminów, z ich instalacją Rootless. Obejmuje to folder/usr.

Są dwa sposoby, aby to naprawić, pierwszy jest niebezpieczny i co wszyscy inni zalecają. Drugi, jest bezpieczniejszy i co tu robię.

Jeśli przejdziesz do swojego System Preferences -> Java -> Java -> View... -> System i skopiuj pole Ścieżka.

To będzie wyglądać podobnie do następującego:

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

Chcemy większość tej drogi, z wyjątkiem /bin/java na końcu.

więc ścieżka powinna teraz zostać skopiowane jako:

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

uruchom następujące polecenie w terminalu, zastępując [ścieżka] ze ścieżką trzeba z góry.

export JAVA_HOME="[PATH]"

i uruchomić, że w terminalu.

Następnie uruchom java -version ponownie i powinien teraz powiedzieć Java Version "1.8"

Teraz webdriver-manager start powinien odnieść sukces.

+4

To działało dla mnie, ale muszę też dodać 'export JAVA_HOME =" [PATH] "' do mojego .bash_profile. Jeśli nie, to przy każdym ponownym uruchomieniu ścieżka powraca do wersji 1.6. – Ryan

Powiązane problemy