Làm cách nào để thay đổi giá trị JAVA_HOME
trong Ubuntu để trỏ đến Java của Oracle?
Nó nên chỉ đến java-6-sun
hay java-6-sun-1.6.0.24
?
Làm cách nào để thay đổi giá trị JAVA_HOME
trong Ubuntu để trỏ đến Java của Oracle?
Nó nên chỉ đến java-6-sun
hay java-6-sun-1.6.0.24
?
Câu trả lời:
Tôi đặt dòng:
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
trong ~/.bashrc
tập tin của tôi
/usr/lib/jvm/java7-oracle
nên là một liên kết tượng trưng chỉ đến /usr/lib/jvm/java-7-oracle-[version number here]
.
Lý do đó là một liên kết tượng trưng là trong trường hợp có phiên bản mới của JVM, bạn không cần cập nhật .bashrc
tệp của mình , nó sẽ tự động trỏ đến phiên bản mới.
Nếu bạn muốn đặt JAVA_HOME
các biến môi trường trên toàn cầu và ở cấp hệ thống, có nghĩa là sử dụng nên được đặt trong /etc/environment
tệp.
oracle-java7-set-default
gói đó làm gì.
Nếu bạn muốn thay đổi nó trên toàn cầu và ở cấp hệ thống;
Trong
/etc/environment
thêm dòng này:
JAVA_HOME=/usr/lib/jvm/java-7-oracle
$JAVA_HOME
không giải quyết được khi sử dụng như thế này PATH=$JAVA_HOME/bin
, đã thử khởi động lại, không có hiệu lực. Tôi có phải export
hoặc set
JAVA_HOME
hoặc trong tập tin này hoặc hồ sơ của tôi?
để đặt Bộ công cụ phát triển Java SE của Oracle làm Java mặc định của hệ thống, chỉ cần tải xuống Bộ công cụ phát triển Java SE mới nhất từ đây, sau đó tạo một thư mục ở đâu đó trong hệ thống tệp của bạn, ví dụ như /usr/java
bây giờ giải nén các tệp bạn vừa tải xuống trong thư mục đó:
$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java
Bây giờ để đặt JAVA_HOME
biến môi trường của bạn :
$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000
đảm bảo java của Oracle được đặt làm java mặc định bằng cách:
$ update-alternatives --config java
bạn nhận được một cái gì đó như thế này:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /opt/java/jdk1.8.0_05/bin/java 20000 auto mode
1 /opt/java/jdk1.8.0_05/bin/java 20000 manual mode
2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 manual mode
Press enter to keep the current choice[*], or type selection number:
chú ý đến dấu hoa thị trước các số ở bên trái và nếu không đặt đúng số, hãy chọn số chính xác bằng cách nhập số của nó và nhấn enter. Bây giờ hãy kiểm tra java của bạn:
$ java -version
Nếu bạn nhận được một cái gì đó như sau, bạn tốt để đi:
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
cũng lưu ý rằng bạn có thể cần sự cho phép root hoặc thuộc nhóm sudoers để có thể làm điều này. Tôi đã thử nghiệm giải pháp này trên cả Ubuntu 12.04 và Debian wheezy và nó hoạt động ở cả hai.
Nếu bạn muốn biến môi trường này có sẵn cho tất cả người dùng và trên hệ thống bắt đầu thì bạn có thể thêm phần sau vào /etc/profile.d/java.sh (tạo nó nếu cần):
export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Sau đó, trong một thiết bị đầu cuối chạy:
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh
Câu hỏi thứ hai của tôi là - nó nên trỏ đến java-6-sun hay java-6-sun-1.6.0.24?
Nó phải luôn luôn chỉ ra java-7-oracle
là các liên kết tượng trưng đến liên kết được cài đặt mới nhất (giả sử bạn đã cài đặt Java từ kho lưu trữ Ubuntu và bây giờ từ bản tải xuống có sẵn tại oracle.com).
java 6
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64
hoặc java 7
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
Nếu bạn đang thực hiện bất kỳ loại phát triển nào, bạn cần trỏ đến JDK (Bộ công cụ phát triển Java). Mặt khác, bạn có thể trỏ đến JRE (Java Runtime Môi trường).
JDK chứa mọi thứ mà JRE có và hơn thế nữa. Nếu bạn chỉ đang thực hiện các chương trình Java, bạn có thể trỏ đến JRE hoặc JDK.
Bạn nên đặt JAVA_HOME
dựa trên Java hiện tại bạn đang sử dụng.
readlink
sẽ in giá trị của một liên kết tượng trưng cho Java hiện tại và sed
sẽ điều chỉnh nó vào thư mục JRE:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Nếu bạn muốn thiết lập JAVA_HOME thành JDK, bạn nên truy cập thêm một thư mục:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
Nếu bạn muốn sử dụng phiên bản Java cụ thể khi nhiều JDK được cài đặt, chỉ cần đặt JAVA_HOME có thể không hoạt động.
Bạn cần sử dụng sudo update-alternatives --config java
để đặt Java mặc định.
Tham khảo https://askubfox.com/questions/121654/how-to-set-default-java-version .
Xem cái này ; chạy
sudo update-java-alternatives --list
để liệt kê tất cả các cài đặt Java trên máy theo tên và thư mục, rồi chạy
sudo update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
để chọn JRE / JDK để sử dụng.
Nếu bạn muốn sử dụng các JDK / JRE khác nhau cho mỗi tác vụ Java, bạn có thể chạy các lựa chọn thay thế cập nhật để định cấu hình một java thực thi tại một thời điểm; bạn có thể chạy
sudo update-alternatives --config java[Tab]
để xem các lệnh Java có thể được cấu hình (java, javac, javah, javaws, v.v.). Và sau đó
sudo update-alternatives --config [javac|java|javadoc|etc.]
sẽ liên kết tác vụ / lệnh Java đó với một JDK / JRE cụ thể.
Bạn cũng có thể cần đặt JAVA_HOME cho một số ứng dụng: từ câu trả lời này, bạn có thể sử dụng
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
cho JRE, hoặc
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
cho JDK.
java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment