2015-12-10 27 views
12

Làm theo các giải pháp trực tuyến cho phiên bản Java nhỏ không chính xác trên El Capitan, tôi thấy một số giải pháp khiến bạn vô hiệu hóa rootless, tôi không thích âm thanh hoặc không hoạt động nữa trong OS X El Capitan.Phiên bản không chính thức trên phiên bản Mac OS X El Capitan

+2

Câu hỏi của bạn là gì? – EluciusFTW

+2

Không có. Đây là một câu trả lời tự để có thể giúp những người khác có cùng một vấn đề, vì tôi đã dành vài giờ tìm kiếm giải pháp và đã đăng nó dưới đây. – Bowersbros

Trả lời

41

Khi cố gắng chạy webdriver-manager start trên El Capitan, bạn có thể nhận được một lỗi nói:

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 

Việc sửa chữa đề nghị cho tuyến này là thay đổi liên kết tượng trưng rằng Mac OS X có Java, mà bạn có thể tìm thấy bằng cách chạy echo $JAVA_HOME trong thiết bị đầu cuối.

Điều này trỏ đến thư mục không chính xác và lỗi là do ứng dụng được biên dịch bằng phiên bản JRE cao hơn so với máy đang chạy trong thiết bị đầu cuối.

Bạn nên đến Oracle, và tải về phiên bản JRE mới nhất (http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html)

Sau này đã được cài đặt, bạn sẽ có Java 8 trên máy tính của bạn, nhưng nó sẽ không cập nhật các thiết bị đầu cuối đúng cách. Nếu bạn chạy java -version trong thiết bị đầu cuối của bạn, bạn sẽ thấy Java Version "1.6", bạn muốn điều này để nói Java Version "1.8". Cách trước đây để làm điều này là thay đổi liên kết bằng tay, tuy nhiên, kể từ El Capitan, Apple đã làm cho một số thư mục nhất định không thể thay đổi ngay cả với người dùng quản trị, với cài đặt Rootless của họ. Điều này bao gồm thư mục/usr.

Có hai cách để khắc phục điều này, điều đầu tiên là nguy hiểm và những gì mọi người khác dường như đề xuất. Thứ hai, an toàn hơn, và những gì tôi đặt ở đây.

Nếu bạn truy cập số System Preferences -> Java -> Java -> View... -> System và sao chép trường Đường dẫn.

Nó sẽ trông tương tự như sau:

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

Chúng tôi mong muốn nhất của con đường này, ngoại trừ /bin/java ở cuối dòng.

Vì vậy, con đường của bạn bây giờ sẽ được sao chép như:

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

Chạy lệnh sau trong terminal, thay thế [PATH] với đường dẫn mà bạn có từ trên cao.

export JAVA_HOME="[PATH]"

và chạy nó trong thiết bị đầu cuối.

Sau đó, chạy java -version một lần nữa, và bây giờ nên nói Java Version "1.8"

Bây giờ, webdriver-manager start nên thành công.

+4

Điều này làm việc cho tôi nhưng tôi cũng cần thêm 'xuất JAVA_HOME =" [PATH] "' vào tệp .bash_profile của tôi. Nếu không, mỗi lần tôi khởi động lại đường dẫn trở lại 1.6. – Ryan

Các vấn đề liên quan