Làm cách nào để tìm JAVA_HOME hiện tại của tôi trong Ubuntu? Tôi phải đặt đường dẫn java_home khi cài đặt maven.
Làm cách nào để tìm JAVA_HOME hiện tại của tôi trong Ubuntu? Tôi phải đặt đường dẫn java_home khi cài đặt maven.
Câu trả lời:
Nhập vào thiết bị đầu cuối,
echo $JAVA_HOME
Hiển thị đường dẫn biến JAVA_HOME.
NẾU KHÔNG CÓ NĂM NÀO THÌ THIẾT LẬP NÓ
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
Điều này sẽ khác nhau tùy theo loại & phiên bản JDK của bạn
Để hiển thị theo lệnh đầu tiên.
Theo dõi bài đăng này để sử dụng các JDK khác nhau hoặc chuyển đổi giữa các JDK
JAVA_HOME doesn't make jdk default, it just makes JAVA_HOME variable set to a path & if you want to use different jdk installed on same machine then check my answer, I have edited it.
Nếu bạn đã cài đặt JDK 1.6 (tương ứng với Java 6) hoặc phiên bản mới hơn, bạn nên có một chương trình có tên jrunscript
trong đó PATH
. Bạn có thể sử dụng để tìm tương ứng JAVA_HOME
. Thí dụ:
$ jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'
/opt/local/jdk1.7.0_76/jre
Bạn có thể đặt biến môi trường như thế này:
$ export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"
Lưu ý rằng JRE không bao gồm jrunscript
, vì vậy điều này sẽ chỉ hoạt động nếu bạn cài đặt JDK, không chỉ JRE.
Một tùy chọn di động khác là trích xuất đường dẫn tuyệt đối của JDK từ javac
:
export JAVA_HOME=`type -p javac|xargs readlink -f|xargs dirname|xargs dirname`
Đường javac
dẫn tuyệt đối được truyền đến dirname
hai lần để loại bỏ /bin/javac
từ cuối. Hoàn thành trích xuất thư mục như sau:
$ type -p javac
/usr/bin/javac
$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-oracle/bin/javac
$ dirname /usr/lib/jvm/java-8-oracle/bin/javac
/usr/lib/jvm/java-8-oracle/bin/
$ dirname /usr/lib/jvm/java-8-oracle/bin/
/usr/lib/jvm/java-8-oracle/
type -p javac|xargs readlink -f|xargs dirname|xargs dirname
(không có phần xuất) để biết thư mục mà không cần đặt nó.
Để tính đến cơ chế cập nhật thay thế:
$ update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'
Bạn có thể đặt biến môi trường như thế này:
$ export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre')"
/jre
. Bạn có thể thửexport JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | sed -e 's/Value: //;s?/jre/bin/java??;')"
Chỉ cần chạy một lệnh
sudo update-alternatives --config java
Nó sẽ cho một cái gì đó như
Es gibt nur eine Alternative in Link-Gruppe java (die /usr/bin/java bereitstellt): /usr/lib/jvm/java-8-oracle/jre/bin/java
Từ đây, bạn có / usr / lib / jvm / java-8-oracle / như java nhà. Bây giờ bạn có thể xuất nó sang biến JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
Bây giờ lặp lại $ JAVA_HOME hiển thị nó
Đặt các biến môi trường Java
PPA cũng chứa một gói để tự động đặt các biến môi trường Java, chỉ cần chạy lệnh:
sudo apt install oracle-java8-set-default
Từ bài viết này: Cài đặt Oracle Java 8/9 trong Ubuntu 16.04, Linux Mint 18
Đối với Java 9 trở lên:
Câu trả lời này https://askubfox.com/a/657468/963 sử dụng công cụ JavaScript Nashorn kèm theo Nashorn để in ra thuộc tính java.home
hệ thống. Nashorn đang bị phản đối vì vậy một giải pháp thay thế là sử dụng được jshell
giới thiệu trong Java 9.
echo 'System.out.println(java.lang.System.getProperty("java.home"));' | jshell -
mà trên hệ thống Ubuntu 18.10 của tôi in ra:
/usr/lib/jvm/java-11-openjdk-amd64