Làm thế nào để tìm đường dẫn nơi jdk cài đặt?


34

Tôi đã cài đặt jdk1.7.0.rpmgói trong RHEL6.
Tôi tìm đường dẫn để thực hiện chương trình java đầu tiên của mình ở đâu?


2
Bản sao có thể có của 18472
sakisk

2
Xin chào, Mohammad. Đó không phải là một câu hỏi ngu ngốc, nhưng một câu hỏi đã được trả lời ở một số nơi - như thế này hoặc câu hỏi này .
rozcietrzewiacz

Chỉ là một PS: trên MacOS, Java thường được cài đặt tại '/ System / L Library / Java / JavaVirtualMachines / .6.0.jdk / Content / Home', trong đó số phiên bản có thể khác nhau.
Daniel Wang

Câu trả lời:


48

Hãy thử một trong hai:

$ mà java

$ đâu java

Đối với chương trình java đầu tiên của bạn, hãy đọc hướng dẫn này:

"Chào thế giới!" cho hệ điều hành Solaris và Linux


Lưu ý các lệnh này cho kết quả khác nhau. Nếu bạn quan tâm đến đường dẫn không liên kết, hãy sử dụng java.
P.Brian.Mackey

Tôi thực sự không nghĩ rằng điều này trả lời câu hỏi. Các javanhị phân được cài đặt với các JRE, nhưng nếu bạn đang làm phát triển bạn cần JDK, mà không nhất thiết phải cài đặt trong which java(mà trong trường hợp của tôi là / usr / bin).
Tim S.

12

Bạn có thể liệt kê các tập tin được cài đặt với

rpm -ql packagename

Bạn sẽ thấy ở đâu đó một binthư mục vớijava executable

Nhưng nếu JDK RPM được cài đặt chính xác, bạn sẽ tìm thấy javatrong đường dẫn của mình.

Thử

javac MyFirstJavaClass.java

và nếu mọi thứ biên dịch

java MyFirstClass

(Nếu bạn không thay đổi bất cứ điều gì thì thư mục hiện tại .đã có trong đường dẫn lớp của bạn)


Đây phải là câu trả lời được chấp nhận IMO.
Tim S.

8

Vì câu hỏi này là cụ thể RPM, rpmlà cách để bắt đầu (như được trả lời bởi @Matteo ).

cờ vòng / phút

-q is short for --query
-l is short for --list

Thí dụ

rpm -ql jdk1.8.0_20 | grep "jdk1.8.0_20/bin$"
/usr/java/jdk1.8.0_20/bin

Biết điều này có thể là mong muốn để thiết lập $JAVA_HOMEbiến của người dùng hoặc ứng dụng . Điều này thường cần thiết khi một hệ thống có nhiều phiên bản của java cài đặt, hoặc nhiều các bản phân phối của java cài đặt, chẳng hạn như OpenJDKOracle / Sun .

$JAVA_HOME Thí dụ

Trong ~/.bash_profile, hoặc tập tin có liên quan ( .bashrc, .zshrc, .cshrc, setenv.sh), một cái gì đó tương tự như dưới đây có thể được sử dụng.

JAVA_HOME='/usr/java/jdk1.8.0_20'
export JAVA_HOME
PATH="$JAVA_HOME/bin:$PATH"
export PATH

Nếu bạn muốn kiểm soát nhiều hơn nơi Java được cài đặt, chẳng hạn như trong /opt, thì tarball có thể được sử dụng thay vì tệp RPM.


Các câu hỏi tương tự khác, đang hỏi về cách tìm bất kỳ tệp nhị phân hoặc tệp nào, trong trường hợp chung.


Nói chung, tôi thực sự khuyên bạn nên sử dụng gói mlocate để tìm kiếm mọi thứ trên hệ thống tệp của Linux dựa trên Red Hat.
Kevin

7

Trên RHEL7, tôi đã sử dụng

locate openjdk

và nó dẫn tôi đến /usr/lib/jvm/thư mục chứa các thư mục:

java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/
jre/
jre-1.8.0/
jre-1.8.0-openjdk/
jre-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/
jre-openjdk/

Mỗi cái đều chứa một bin/java

Để tìm đường dẫn đầy đủ của liên kết tượng trưng, ​​sử dụng:

readlink -f $(which java)

* Tín dụng: Trả lời về Stack Overflow

** Lưu ý: Tôi đang trả lời ở đây vì đây là kết quả đầu tiên trong Google


Điều này đã cho tôi chủ yếu là JDK6 mặc dù java -versionđã cho tôi 1.8. Có một liên kết đến thư mục JDK8 ở gần đầu.
Noumenon
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.