Tôi đã cài đặt JDK bằng cách sử dụng apt-get install nhưng tôi không biết thư mục jdk của mình ở đâu. Tôi cần thiết lập đường dẫn cho điều đó. Có ai có một đầu mối về vị trí?
/usr/local/java/
các bản phân phối Oracle đã tải xuống ban đầu.
Tôi đã cài đặt JDK bằng cách sử dụng apt-get install nhưng tôi không biết thư mục jdk của mình ở đâu. Tôi cần thiết lập đường dẫn cho điều đó. Có ai có một đầu mối về vị trí?
/usr/local/java/
các bản phân phối Oracle đã tải xuống ban đầu.
Câu trả lời:
Điều này phụ thuộc một chút từ hệ thống gói của bạn ... nếu java
lệnh hoạt động, bạn có thể nhập readlink -f $(which java)
để tìm vị trí của lệnh java. Trên hệ thống OpenSUSE, hiện tại tôi trả về /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java
(nhưng đây không phải là hệ thống sử dụng apt-get
).
Trên Ubuntu, có vẻ như nó /usr/lib/jvm/java-6-openjdk/
dành cho OpenJDK và trong một số thư mục con khác của /usr/lib/jvm/
Suns JDK (và các triển khai khác cũng vậy, tôi nghĩ vậy).
Đối với bất kỳ gói nào, bạn có thể xác định tệp nào sẽ cài đặt và nơi cài đặt chúng bằng cách truy vấn dpkg. Ví dụ cho gói 'openjdk-6-jdk':dpkg -L openjdk-6-jdk
/usr/lib/jvm/java-7-openjdk-amd64
.
readlink -f $(which javac)
- lưu ý 'c' trong trường hợp có sự pha trộn kỳ lạ của JDK và JRE trên cùng một máy. JDK bao gồm một trình biên dịch (javac) và JRE thì không. Tuy nhiên, nếu đường dẫn không chính xác, nó sẽ thất bại và bạn có thể thử điều này: find /usr/java -wholename '*ava/jdk*' -prune
như tôi lưu ý trong một bình luận dưới đây.
update-java-alternatives -l
sẽ cho bạn biết cách triển khai java nào là mặc định cho hệ thống của bạn và nơi cài đặt hệ thống tập tin. Kiểm tra hướng dẫn để có thêm tùy chọn.
apt-get
và bản phân phối Debian 2.6.26
. AFAIK, nó phải giống nhau cho tất cả các dẫn xuất debian.
$ which java
sẽ cung cấp cho bạn một cái gì đó như
/usr/bin/java
readlink -f $(which javac)
nó sẽ in /usr/lib/jvm/java-8-oracle/bin/javac
. Thư mục bin đó KHÔNG phải là JDK. Thử nghiệm axit-bazơ tổng quát để xem liệu JDK của nó có để xem dòng điện $JAVA_HOME
có chứa đường dẫn không lib/tools.jar
. Trong /usr/lib/jvm/java-8-oracle/bin
đó, điều đó không đúng, do đó nó không phải là JDK.
find /usr/java -wholename '*ava/jdk*' -prune
Nhưng hành vi phụ thuộc vào việc bạn đang nói về OpenJDK hay Oracle Java và cách nó được cài đặt ở vị trí đầu tiên.
Câu hỏi này sẽ được di chuyển nhưng bạn có thể làm như sau
which javac
hoặc là
cd /
find . -name 'javac'
Sử dụng tìm để định vị nó. Nó nên /usr
ở dưới một nơi nào đó:
find /usr -name java
Khi chạy lệnh, nếu có quá nhiều thông báo "Quyền bị từ chối" làm mờ kết quả tìm thấy thực tế thì chỉ cần chuyển hướng stderr sang / dev / null
find /usr -name java 2> /dev/null
Một cách tốt nhất khác để tìm đường dẫn thư mục Java là sử dụng alternatives
lệnh trong Fedora Linux (Tôi biết nó dành cho Ubuntu nhưng tôi đã đăng bài này từ google chỉ bằng tiêu đề của nó). Chỉ muốn chia sẻ những người như tôi đang tìm kiếm câu trả lời cho hương vị fedora.
Để hiển thị tất cả thông tin liên quan đến java
alternatives --display java
Quá trình ba bước: Đầu tiên: mở Terminal-> $ whereis java
nó sẽ cho đầu ra như thế này:
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
Thứ hai:
ls -l /usr/bin/java
Nó sẽ cho đầu ra như thế này:
lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java
Thứ ba:
ls -l /etc/alternatives/java
đầu ra là đường dẫn JDK:
lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Đơn giản, hãy thử nó:
Đó là / usr / local / java / jdk [phiên bản]
Câu hỏi này vẫn có vẻ phù hợp, và câu trả lời dường như là một mục tiêu di động.
Trên hệ thống debian của tôi (buster):
> update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
Tuy nhiên, nếu bạn thực sự đi đến đó, bạn sẽ thấy có nhiều thư mục và các liên kết tượng trưng được đặt ở đó bởi hệ thống gói để đơn giản hóa việc bảo trì trong tương lai.
Các thư mục thực tế là java-11-openjdk-amd64
, với một liên kết tượng trưng khác default-java
. Ngoài ra còn có một openjdk-11
thư mục, nhưng dường như chỉ chứa một tệp source.zip.
Với điều này, đối với Debian CHỈ, tôi đoán giá trị tốt nhất để sử dụng là /usr/lib/jvm/default-java
, vì điều này sẽ luôn hợp lệ, ngay cả khi bạn quyết định cài đặt một phiên bản java hoàn toàn khác, hoặc thậm chí là các nhà cung cấp chuyển đổi.
Lý do bình thường để biết đường dẫn là vì một số ứng dụng muốn nó và có lẽ bạn không muốn ứng dụng đó bị hỏng vì bạn đã nâng cấp thay đổi số phiên bản.
trên OpenSUSE 13.1 / 13.2, số /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
phiên bản có thể là 1.7.x 1.8.x, v.v. kiểm tra phiên bản phù thủy của trình quản lý phần mềm bạn đã cài đặt ...
André
Trên Linux Fedora30, có sẵn một số phiên bản của JDK java đầy đủ, cụ thể là các tên gói:
java-1.8.0-openjdk-devel.x86_64
java-11-openjdk-devel.x86_64
Sau khi cài đặt, chúng được tìm thấy trong: /usr/lib/jvm
Để chọn vị trí / thư mục của JDK phát triển đầy đủ (khác với thời gian chạy đơn giản hơn chỉ JRE), hãy tìm các mục:
ls -ld java*openjdk*
Dưới đây là hai lựa chọn tốt, đó là các liên kết đến các phiên bản cụ thể, nơi bạn sẽ phải chọn phiên bản:
/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk
Đây là cách tốt nhất giúp tôi thực hiện Lệnh này: -
$(dirname $(readlink $(which javac)))/java_home