2012-06-03 27 views
32

Tôi đang gặp vấn đề thảm hại với Java trong mac osx 10.7.3. Trước đây tôi đã cài đặt và nó hoạt động tốt. Sau khi một số thay đổi trong .bash_profile và file .profile trong quá trình thời gian, Tôi gặp một lỗi nhưKhông thể định vị tệp thực thi tại "/ usr/bin/java/bin/java" (-1)

Unable to locate an executable at "/usr/bin/java/bin/java" 

bất cứ khi nào tôi cố gắng chạy "javac" hoặc "java" trong thiết bị đầu cuối của tôi.

echo $PATH đưa ra một sản lượng như:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/sabya/Documents/Play_Framework/play-2.0:/usr/X11/bin:/usr/local/git/bin:/usr/local/mysql/bin 

.bash_profile của tôi trông giống như:

alias start_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM start" 
alias stop_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM stop" 
export JAVA_HOME=/usr/bin/java 

Sản lượng which java

/usr/bin/java 

nó bugging tôi trong nhiều ngày dài và gỡ bỏ cài đặt và cài đặt java đã không giúp may mắn của tôi.

Tôi là người mới sử dụng máy Mac và cần trợ giúp để sắp xếp vấn đề này.

Googled và thấy SOF trước khi đăng câu hỏi này nhưng không tìm thấy bất kỳ điều gì cụ thể cho vấn đề của tôi.

Cảm ơn

Sabya

+3

Tôi không hiểu về -1. Bạn có thể giải thích? – Sabya

Trả lời

67

chắc chắn nhất, export JAVA_HOME=/usr/bin/java là thủ phạm. Env var này sẽ trỏ đến thư mục cài đặt JDK hoặc JRE. Googling cho thấy rằng tùy chọn tốt nhất cho MacOS X có vẻ là export JAVA_HOME=/Library/Java/Home.

+2

xuất JAVA_HOME =/Library/Java/Home in .bash_profile hoạt động hoàn hảo. Cảm ơn bạn đã trợ giúp. :-) – Sabya

+14

Mỏ đã được cài đặt vào '/ Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home'. – cloudrave

+1

Điều này làm việc hoàn hảo cho tôi là tốt, mặc dù tôi không hiểu nó. Nếu bạn cho "java" bảng điều khiển trả về/usr/bin/java, thì tại sao chúng ta phải thiết lập một đường dẫn khác? – Loebre

9

JAVA_HOMEkhông phải là tên của tệp thi hành java. Nhưng trong thư mục, java đã được cài đặt. Tệp thi hành phải là $JAVA_HOME/bin/java.

Lệnh which không hữu ích cho bạn ở đó. Nó sẽ không cung cấp cho bạn trang chủ java, nhưng rất có thể đây chỉ là một trình bao bọc hoặc liên kết tượng trưng đến java được cài đặt trong một thư mục rất khác.

4
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home 

Bởi vì:

$ find /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home -name java* 

/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java /Library/Java/JavaVirtualMachines/jdk1.8.0_45 .jdk/Nội dung/Trang chủ/bin/javac /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javadoc /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/ Trang chủ/bin/javafxpackager /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Ho me/bin/javah /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javap /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javapackager /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/javafx-src.zip /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Nội dung/Trang chủ/jre/bin/java

0

tôi đã gặp phải sự cố tương tự và sau khi đọc bài đăng này tôi đã kiểm tra lại định nghĩa JAVA_HOME trong .bash_profile. Thực tế là:

export JAVA_HOME=$(which java) 

chính xác là Anony-Mousse giải thích, là tệp thực thi. Thay đổi nó thành:

export=/Library/Java/Home 

khắc phục sự cố, tho vẫn thú vị khi hiểu tại sao nó được định giá theo cách đó trong tệp tiểu sử.

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