2012-08-23 32 views
7

Xác định đường dẫn chính xác cho JAVA_HOME hơi phức tạp trên hệ thống Ubuntu vì hệ thống này sử dụng các giải pháp thay thế. Trên máy tính của tôi, đây là cách các lựa chọn thay thế tạo ra ít nhất hai cấp độ gián tiếp trước khi nó được đưa vào java hoặc javac thực tế.Đường dẫn chính xác cho JAVA_HOME trên hệ thống Linux sử dụng các giải pháp thay thế là gì?

usr/bin/javac -> /etc/alternatives/ 

/etc/alternatives/java -> /usr/lib/jvm/jdk1.7/bin/javac 

Nếu tôi đặt JAVA_HOME-/usr/lib/jvm/jdk1.7, sau đó nó có thể là hệ thống java của tôi có thể trở thành không phù hợp với java trỏ đến bởi JAVA_HOME, nếu tôi cập nhật giải pháp thay thế để sử dụng java khác.

Câu hỏi của tôi là, giá trị chính xác cho JAVA_HOME trên hệ thống sử dụng các lựa chọn thay thế là gì. Tôi có khuynh hướng nghĩ rằng JAVA_HOME nên được đặt thành /usr

Bằng cách này TOMCAT hoặc bất kỳ phần mềm nào khác có sử dụng nó, sẽ nối 'bin' để JAVA_HOME và tìm tất cả các file thực thi nó cần.

Đây có phải là giá trị chính xác cho JAVA_HOME trên các hệ thống sử dụng các lựa chọn thay thế hay không. Hầu hết các phần mềm chỉ sử dụng JAVA_HOME để xác định vị trí các tệp thi hành hay chúng sẽ sử dụng giá trị để định vị các tạo phẩm khác (chẳng hạn như tệp chính sách bảo mật, v.v.) đi kèm với JDK? Nếu trước đây là đúng, sau đó tôi cảm thấy chúng ta có thể sử dụng /usr cho JAVA_HOME, nhưng nếu điều sau là đúng, thì tôi nghĩ cách duy nhất để sử dụng JAVA_HOME chính xác là bằng cách hi sinh chức năng thay thế.

+0

Tôi chỉ xem hệ thống CentOS 5.5 của mình: 1) Tôi * không * có $ JAVA_HOME được định nghĩa ở bất kỳ nơi nào trong môi trường của mình, 2) /etc/tomcat5/tomcat5.conf có dòng này : 'JAVA_HOME ="/usr/lib/jvm/java ", 3)/usr/lib/jvm/java là một liên kết tượng trưng:' java ->/etc/alternative/java_sdk', 4)/etc/alternative/java_sdk cũng là một liên kết tượng trưng: 'java_sdk ->/usr/lib/jvm/java-1.4.2-gcj'. – paulsm4

+0

Vâng, tôi có 'mặc định-java' trên Ubuntu thay vì 'java' bên trong/usr/lib/jvm Vì vậy, tôi đoán mẹo không phải lo lắng về các lựa chọn thay thế vì có thêm một lớp giữa các lựa chọn thay thế và Java. – Parag

Trả lời

5

Câu hỏi hay - tôi sử dụng "lựa chọn thay thế" trên Linux và mọi thứ "chỉ hoạt động" - tôi chưa bao giờ thực sự phải nghĩ về nó.

Tôi tin rằng đây là câu trả lời:

1) "thay thế" thiết lập liên kết tượng trưng đến bất cứ điều gì "thật" của bạn Java hiện cấu hình đến

2) Tất cả những gì bạn cần o do được đặt $ JAVA_HOME thành liên kết tượng trưng

+0

Bản phân phối này là gì? Tôi đang sử dụng Debian, sử dụng các lựa chọn thay thế và tôi không có/usr/lib/jvm/default-java –

+0

Câu trả lời thú vị. Lần đầu tiên tôi bắt đầu nhận xét này với giải thích lý do tại sao, những gì bạn đang đề xuất sẽ không hoạt động. Nhưng khi tôi nghĩ về nó nhiều hơn tôi nghĩ rằng tôi hiểu những gì bạn đang đề xuất. Bạn có nói rằng tôi nên tạo một thư mục 'default-java' và liên kết nó với Java mà tôi muốn sử dụng. Tiếp theo, tôi nên cập nhật hệ thống thay thế của mình để trỏ tất cả các tệp nhị phân liên quan đến Java đến các tệp nhị phân trong 'mặc định-java/bin'. Điều này sẽ giải quyết vấn đề bằng cách thêm một lớp nữa giữa các lựa chọn thay thế và Java – Parag

+0

Cảm ơn.Tôi hơi bối rối vì tôi đã làm rối tung các lựa chọn thay thế của mình, và các tệp nhị phân java không còn đi qua mặc định-java – Parag

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