Câu trả lời:
Nếu bạn tải xuống tệp nhị phân linux từ Sun, bạn có thể cài đặt nó trong bất kỳ thư mục nào bạn thích. Sau đó, chỉ cần tham khảo các lib đó trong mã của bạn, và bạn tốt để đi.
Với trình cài đặt nhị phân, nó sẽ tạo thư mục con có tên riêng (ví dụ: trong ví dụ của bạn, /usr/java/jdk1.5.0_), vì vậy bạn có thể tải xuống bao nhiêu tùy thích và chúng sẽ tự xếp hàng theo tên thích hợp tiểu khu.
Nhị phân java chính tồn tại trong / usr / bin, vì vậy nếu bạn muốn thay thế nó đến điểm khi bạn gõ "java", nó sẽ truy cập java của bạn chứ không phải cái đó, bạn chỉ cần di chuyển cái cũ ra khỏi / usr / bin và liên kết cái mới của bạn trong đó. Nhập which java
sẽ cho bạn biết java mặc định trên hệ thống của bạn là gì.
@jldupont: Khi tôi nghĩ về cài đặt đồng thời, tôi nghĩ đến nhiều phiên bản được cài đặt trên cùng một máy, phương pháp của tôi sẽ hoàn toàn mang lại cho bạn. Tôi có khoảng 12 phiên bản java được cài đặt trên hộp sản xuất của mình để xử lý các lỗi liên quan từ công ty chưa được cập nhật.
Tuy nhiên, khi bạn nhập "java", bạn sẽ chỉ nhận được một phiên bản java, vì đó là những gì trong '/usr/bin'... Bạn phải nhập một cái gì đó như' /usr/java/jdk1.5.1/ bin / java 'để có được một nhị phân java cụ thể không phải là mặc định của hệ thống.
Chỉ cần tải xuống và thực thi tệp .bin từ oracle sau đó trích xuất chính nó vào một thư mục. Di chuyển thư mục này (ví dụ jdk1.6.0_32
) vào / usr / lib / jvm và sau đó tập lệnh setjava
tôi sử dụng để thay đổi phiên bản java. export
Tuy nhiên, do các câu lệnh bạn cần ở trong cùng một thiết bị đầu cuối. Ngoài ra một số công cụ jvm nhỏ có thể không được thiết lập nhưng tôi đoán nó sẽ hoạt động trong hầu hết các trường hợp. Ngoài ra tôi là một noob shell nên xin vui lòng sửa cho tôi nếu có khả năng tốt hơn :-) Mã cho tôi là:
#!/bin/bash
# shouldnt be used in a loop, else the path may become too long
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "Not running as root"
exit
fi
case "$1" in
6)
echo "Setting Java version 6"
export PATH=/usr/lib/jvm/jdk1.6.0_32/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_32
sudo rm /usr/bin/java
sudo rm /usr/bin/javac
sudo rm /usr/bin/javadoc
sudo rm /usr/bin/javah
sudo rm /usr/bin/javap
sudo rm /usr/bin/javaws
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/java /usr/bin/java
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javac /usr/bin/javac
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javadoc /usr/bin/javadoc
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javah /usr/bin/javah
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javap /usr/bin/javap
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javaws /usr/bin/javaws
javac -version
java -version
;;
7)
echo "Setting Java version 7"
export PATH=/usr/lib/jvm/java-7-openjdk/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk/
sudo rm /usr/bin/java
sudo rm /usr/bin/javac
sudo rm /usr/bin/javadoc
sudo rm /usr/bin/javah
sudo rm /usr/bin/javap
sudo rm /usr/bin/javaws
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/java /usr/bin/java
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javadoc /usr/bin/javadoc
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javah /usr/bin/javah
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javap /usr/bin/javap
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javaws /usr/bin/javaws
javac -version
java -version
;;
*)
echo "Usage: $0 {6|7}"
esac
exit 0