Làm cách nào để đặt phiên bản Java mặc định?


125

Tôi đã làm theo tất cả các hướng dẫn được nêu trong câu hỏi này , nhưng tôi đang gặp một số vấn đề với phần cuối cùng của nó.

Tôi thực sự có phiên bản 6.22 của java và muốn cập nhật lên phiên bản 6.30.

Vì vậy, sau khi chuyển thư mục được trích xuất java-6-oraclevào /usr/lib/jvmtôi không biết phải làm gì, vì tập lệnh được chỉ ra trong câu trả lời ở trên cập nhật từ java 5 sang java 6.

Vì lợi ích của sự rõ ràng ở đây là đầu ra nếu tôi thực hiện lstrong dir /usr/lib/jvm:

$ ls -l /usr/lib/jvm
total 8 
lrwxrwxrwx  1 root root   14 2011-07-12 15:18 default-java -> java-6-openjdk
lrwxrwxrwx  1 root root   14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk 
drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle 
drwxr-xr-x  7 root root 4096 2012-02-24 14:43 java-6-openjdk

Tôi nên làm gì bây giờ?


THÊM PHẦN

Theo đề nghị của @fossfreedom, tôi vẫn chạy tập lệnh và thực sự nó đã cập nhật phiên bản java.

Trong thực tế nếu tôi chạy java -versionđầu ra lệnh sẽ như sau:

$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

Vẫn còn một vấn đề , nếu Irun javac -versionnó cho tôi cài đặt phiên bản cũ:

$ javac -version
javac 1.6.0_22

Và nếu tôi sử dụng trình kiểm tra tại liên kết này, nó sẽ cho tôi biết phiên bản đó là

Java Version 1.6.0_22 from Sun Microsystems Inc.

Có chuyện gì thế?

Có vẻ như Môi trường chạy thi hành Java đã cập nhật, nhưng Trình biên dịch Java và trình cắm Java cho trình duyệt thì không.

Làm thế nào tôi có thể cập nhật chúng?


PHẦN THÊM KHÁC

sudo update-alternatives --config java sẽ trở lại đầu ra sau

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      manual mode

Press enter to keep the current choice[*], or type selection number:

những điều này có ý nghĩa với thực tế là JRE được cập nhật chính xác lên phiên bản 6.31, các vấn đề nằm ở trình biên dịch Java và trình duyệt Java.

Có ý kiến ​​gì không?


@fossfreedom Tôi chưa thử vì tôi nghĩ rằng đó không phải là ý tưởng hay vì nó được viết rõ ràng để tải lên từ Java 5 đến 6, dù sao tôi cũng nên?
Matteo

1
hmmm - có thể bạn có thể nhầm lẫn rằng tập lệnh webupd8 là 0,5b? Đó là phiên bản của tập lệnh - nó không đề cập đến phiên bản java. Hãy thử một lần. Hãy xem ảnh chụp màn hình của cửa sổ khi bạn chạy tập lệnh.
fossfreedom

@fossfreedom yeah khiến tôi hoàn toàn bối rối; DI chạy kịch bản! kiểm tra các chỉnh sửa trong câu hỏi! rất nhiều vì đã giúp tôi ..
Matteo

thật kỳ lạ ... chưa bao giờ gặp phải điều đó. Dù sao - nhìn vào câu trả lời ngay bên dưới - bạn sẽ có thể sudo update-alternativestheo ví dụ.
fossfreedom

@fossfreedom cập nhật lại câu hỏi!
Matteo

Câu trả lời:


104

Câu hỏi đầu tiên của bạn:

có thể bạn có thể nhầm lẫn rằng tập lệnh webupd8 là 0,5b. Đó là phiên bản của tập lệnh - nó không đề cập đến phiên bản java.

Hơn nữa với các thiết lập của phiên bản javac.

Tôi nghi ngờ bạn cần cung cấp rõ ràng đường dẫn của trình biên dịch javac

I E

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6.31-oracle/bin/javac" 1

theo dõi bởi:

sudo update-alternatives --config javac

Liên quan đến việc thiết lập các plugin java chrome.

Câu hỏi chính:

Làm cách nào để cài đặt Oracle JDK 6?

bao gồm thông tin này - vì cấu trúc thư mục của bạn hơi khác một chút nên lệnh liên kết của bạn phải là:

ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

Về bản thân, điều này chỉ thay đổi trình biên dịch - xem câu trả lời bên dưới để biết các lựa chọn thay thế cập nhật java xử lý chuyển đổi tất cả các lựa chọn thay thế liên quan đến java, là 82 trên hệ thống của tôi.
Greg

55

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.


25

Tôi nghĩ bạn nên xem update-java-alternativeslệnh từ java-commongói và các *.jinfotệp được sử dụng bởi nó. Với điều đó, bạn sẽ có thể chuyển đổi hoàn toàn giữa các cài đặt java (bất kể JDK, JRE, ...).


2
Tôi đã thử update-java-alternativesvà sau đó java -versionlà chính xác, nhưng liên kết trong $JAVA_HOMEvẫn sai ... Tôi đã thay đổi liên kết đó bằng tay, nhưng tôi tự hỏi liệu có thiếu điều gì update-java-alternativestrong vấn đề đó không.
Alexis Wilke

7

Trên Ubuntu / linux, bạn có thể chuyển đổi phiên bản java bằng cách sử dụng

update-alternatives --config java

Nhưng trước đây, bạn cần cài đặt phiên bản.

Bạn có thể sử dụng tập lệnh này (./install-java.sh) để cài đặt nhiều JVM

#!/bin/sh
(
lookforJdks=$PWD
echo "Directory: $lookforJdks"
jdks=`test -e ./javac || find $lookforJdks -type d -iname '*jdk1.*' 2> /dev/null`
#set -e
echo 'which jdk do you want to choose? looking for jdks. This might take a while'
echo "$jdks" | awk '{printf("%5d : %s\n", NR,$0)}'
read choose
test -e ./javac || cd `echo "$jdks" | tr '\n' ',' | cut -d',' -f $choose`/bin
for e in appletviewer extcheck idlj jar jarsigner java javac javadoc javah javap jconsole \
 jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic \
 schemagen serialver wsgen wsimport xjc jvisualvm jmc; do sudo update-alternatives \
 --install /usr/bin/$e $e $(readlink -f ./$e) 100; done
)

echo "RUN update-alternatives --config java"

Đặt tập lệnh này vào thư mục đã giải nén JVM (s) và chạy:

/opt/install-java.sh

Lần sử dụng tiếp theo:

update-alternatives --config java

1

Nếu bạn định cài đặt thủ công các lựa chọn thay thế cho javac javaws javadoc hoặc bất kỳ lệnh java nào khác có liên quan, bạn có thể muốn biến chúng thành nô lệ của java altenative.

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"


update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links


:/opt/jdk1.8.0_74$ sudo update-alternatives --display java

java - chế độ tự động liên kết phiên bản tốt nhất là /opt/jdk1.8.0_74/bin/java liên kết hiện đang trỏ đến /opt/jdk1.8.0_74/bin/java liên kết java là / usr / bin / java nô lệ javadoc là / usr / bin / javadoc /opt/jdk1.8.0_74/bin/java - ưu tiên 0 nô lệ javadoc: /opt/jdk1.8.0_74/bin/javadoc

Thay đổi /opt/jdk1.8.0_74/ với thư mục nơi jdk của bạn được cài đặt.


0

Mở /etc/environmenttrong bất kỳ trình soạn thảo văn bản của bạn và thêm dòng sau:

JAVA_HOME="usr/lib/jvm/open-jdk 

- Đường dẫn Java có thể khác nhau.
Sử dụng nguồn để tải các biến, bằng cách chạy lệnh này:

source /etc/environment

Sau đó kiểm tra biến, bằng cách chạy lệnh này:

echo $JAVA_HOME

Với đường dẫn này được đặt, hãy chạy lệnh này:

sudo  update-java-alternatives --list

Chọn phiên bản Java mặc định của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.