Java được cài đặt ở đâu trên Mac OS X?


726

Tôi vừa tải xuống Java 7u17 trên Mac OS 10.7.5 từ đây và sau đó cài đặt thành công. Để thực hiện một số lập trình JNI, tôi cần biết Java được cài đặt ở đâu trên máy Mac của tôi.

Tôi nghĩ rằng bên trong /Library/Java/JavaVirtualMachines/thư mục, sẽ có một thư mục được gọi 1.7.0.jdkhoặc một cái gì đó, nhưng sau đó tôi thấy rằng thư mục trống. Điều này đã được xác nhận bằng cách chạy ls /Library/Java/JavaVirtualMachines/trong Terminal. Tôi đã thử tìm kiếm nó để tìm hiểu xem nó đã được cài đặt ở nơi nào khác chưa, nhưng dường như điều đó không thể bật lên được.

Ai đó có thể vui lòng cho tôi biết Java được cài đặt ở đâu trên máy Mac của tôi không?


12
Để đóng cử tri / người mở lại - câu hỏi này rõ ràng không lạc đề (câu hỏi về các công cụ thường được sử dụng bởi các lập trình viên) . Thật không may, nó đã được bandwagoned bởi meta .
Cướp

Câu trả lời:


1384

Sử dụng /usr/libexec/java_home -v 1.8lệnh trên shell terminal để tìm ra thư mục nhà Java 1.8 của bạn ở đâu

Nếu bạn chỉ muốn tìm ra thư mục chính của phiên bản Java gần đây nhất của bạn, hãy bỏ qua phiên bản. ví dụ/usr/libexec/java_home


Tôi nhận được câu hỏi này vì tôi gặp lỗi trong nhật thực trên máy mac vì tôi gặp lỗi ở dòng đầu tiên của chương trình "nhập java.util. *." Tôi hoàn toàn nghi ngờ điều này là do đường dẫn java không được đặt chính xác hoặc một cái gì đó (mặc dù tôi đã thiết lập đường dẫn này một lần trước đó). Tôi đã nhập lệnh trong câu trả lời này và tôi nhận được một thư mục. Tôi chỉ có thể dán thư mục đó vào hộp văn bản trong cửa sổ "Cấu hình thư mục gốc"? Hay thư mục này thuộc về nơi nào khác?
OKGimmeMoney

47
Đã thêm vào export JAVA_HOME=`/usr/libexec/java_home`.bash_profile để JAVA_HOME luôn được đặt (lưu ý các dấu kiểm ngược xung quanh lệnh libexec)
Steve Henty

Nếu bạn chỉ muốn biết nếu JDK được cài đặt trên máy mac của mình, hãy bỏ qua số phiên bản và chạy từ thiết bị đầu cuối: $ echo $ (/ usr / libexec / java_home)
Donato

3
Trên Mac 10.12.3, chúng ta nên /usr/libexec/java_home -- vhiển thị phiên bản java mới nhất
klion26

116

Bạn có thể sử dụng echo $(/usr/libexec/java_home)lệnh trong thiết bị đầu cuối của mình để biết đường dẫn nơi Java được cài đặt.


7
Tôi thích giải pháp này tốt hơn câu trả lời được chấp nhận vì nó độc lập với phiên bản JVM được cài đặt.
Alexandre Santos

1
Điều này đã không tìm thấy phiên bản java 8 của tôi được cài đặt bởi Oracle.
Antoine Lizée

13
Tại sao bạn có cái echo $(...)đó? Không chỉ /usr/libexec/java_homelàm như vậy sao?
Paŭlo Ebermann

1
Câu trả lời được chấp nhận không làm việc cho tôi nhưng điều này đã làm việc! (Tôi thường không phải là người dùng mac / unix)
Roel

@ PaŭloEbermann Nó không hoạt động đối với tôi mà không có dấu và dấu ngoặc.
Nikola Stojaković

80

Hóa ra tôi thực sự đã cài đặt JRE Java 7 chứ không phải JDK. Liên kết tải xuống chính xác là ở đây . Sau khi cài đặt nó, jdk1.7.0jdkxuất hiện trong thư mục JavaVirtualMachines.


49
Đối với tôi, nó nằm dưới /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk(biết rằng đối với JDK 1.6, đường dẫn là /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/:)
Zakaria

Cám ơn rất nhiều! Tôi đã không nhận thấy rằng tôi đã cài đặt JRE một cách tình cờ xD
Oliver Ni

1
xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile
Oleksii Kyslytsyn

34

Nếu bạn chỉ cài đặt JRE, nó dường như được đặt tại:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

2
Bạn không nên dựa vào điều này hiện có. Nếu bạn cần JRE, hãy đóng gói bên trong ứng dụng của riêng bạn.
swingler

Đặt JAVA_HOME bằng một đường dẫn chứa ký tự khoảng trắng là một thách thức! Tôi đã không thành công ...
Antoine Rosset

bạn có thể tạo một nơi nào đó một liên kết đến thư mục này và đặt JAVA_HOME cho liên kết đó
Kuba

Đây là nơi bảng tùy chọn hệ thống "Java" dường như cài đặt nó.
David Avendasora

2
@AntoineRosset, bạn có thể đặt nó theo cách này:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
coda

24

Sử dụng chức năng tìm unix để tìm javas được cài đặt ...

sudo find / -name java

19
Bạn không cần sudo để chạy find cho các lệnh thường có thể truy cập. Nếu bạn không muốn xem các thông báo lỗi về các thư mục không thể truy cập, hãy loại bỏ các thông báo thay vì sử dụng các quyền riêng tư không cần thiết. Sử dụng sudo mọi lúc là một thói quen xấu. Chuyển hướng stderr sang / dev / null, như thế này: find / -name java 2> / dev / null
Walter Underwood

1
Tôi nên làm gì nếu tôi cần quá tìm trong thư mục không thể truy cập?
serkan

2
Quan điểm của Walter là javanhị phân sẽ có thể đọc được trên thế giới, do đó sudokhông cần thiết. Câu trả lời của bạn vẫn hữu ích :)
Jared Beck

Có, tôi chỉ sử dụng điều này để tìm src.zip (mã nguồn của java jdk)
Dinis Cruz

xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile
Oleksii Kyslytsyn

22

Hãy thử cách này, cách dễ dàng để tìm đường dẫn cài đặt java trong Mac OS X,

Đi đến

1) / Thư viện tức là Macintosh HD / Thư viện

nhập mô tả hình ảnh ở đây

2) Nhấp vào Thư viện trong đó chúng tôi tìm thấy thư mục Java.

nhập mô tả hình ảnh ở đây

3) Vì vậy, con đường cuối cùng là

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Hy vọng vì vậy đây là giúp đỡ cho một ai đó.


1
Khá hữu ích khi bạn phải chỉ ra JDK rõ ràng từ một IDE. Cảm ơn
Shwetabh Shekhar

Tôi dày đặc như thế nào? Thiết bị đầu cuối của tôi nói rằng tôi đã cài đặt 2 jdk trong / Library / Java / JavaVirtualMachines / nhưng tôi không thể tìm thấy chúng khi tôi điều hướng đến thư mục đó trong công cụ tìm ... Tôi có thể nhận được mật độ dày đặc như thế nào ...
SoftwareSavant

@SoftwareSavant, Vui lòng tham khảo stackoverflow.com/a/14875241 câu trả lời, Nó có thể giúp bạn.
Jaywant Khedkar

19

Cấu trúc gói Java của Mac OS hơi khác so với Windows. Đừng buồn vì điều này vì nhà phát triển chỉ cần thiết lập PATHJAVA_HOME.

Vì vậy, trong .bash_profilebộ JAVA_HOMEPATHnhư dưới đây. Ví dụ này dành cho Java 6:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH

12
Điều này loại bỏ về mọi thứ khác từ con đường? Chỉ làm điều này nếu bạn chỉ sử dụng Java và không có gì khác trong hệ thống của bạn.
Paŭlo Ebermann

xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile.
Oleksii Kyslytsyn

17

Nếu bạn gõ

java -verbose 

Điều này cũng cung cấp vị trí mà các lọ được tải và do đó cũng là đường dẫn java.


Tôi đã thêm xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile.
Oleksii Kyslytsyn

8

Đã chỉnh sửa: Bí danh cho phiên bản java hiện tại là /Library/Java/Home

Để biết thêm thông tin: một liên kết


Đó sẽ là bí danh cho phiên bản gần đây nhất, nó sẽ trỏ chính xác tới SDK Java 7 sau khi được cài đặt.
Thunderforge

1
Liên kết này chỉ tồn tại cho các mục đích cũ và sẽ không được cập nhật bằng cách cài đặt Java 7. Không sử dụng đường dẫn này.
swingler

Tôi đã cập nhật xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile.
Oleksii Kyslytsyn

8

chỉ cần viết /Library/Java/JavaVirtualMachines/
vào Chuyển đến Thư mục -> Truy cập Finder


ok, tôi vừa thử cái này và tôi đã điều hướng đến thư mục. Tại sao tôi không thể điều hướng đến thư mục đó bình thường trong Finder? Có phải điều này chỉ khiến Apple thêm phiền phức ... Cũng khó chịu thêm, phiên bản Gradle 4.3 không hoạt động với bất kỳ phiên bản Java nào ngoại trừ Java 8
SoftwareSavant

xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile
Oleksii Kyslytsyn

6

Tôi vừa cài đặt JDK cho phiên bản 21 của Java SE 7 và thấy rằng nó được cài đặt trong một thư mục khác với Java của Java 6. Nó nằm trong / Library / Java ... chứ không phải trong / System / Library / Java ... Chạy / usr / libexec / java_home -v 1.7 so với -v 1.6 sẽ xác nhận điều này.


xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile
Oleksii Kyslytsyn

6

Tôi đã thử giải pháp của serkan, nó tìm thấy vị trí của java 7 trên OS X Mavericks. nó được đặt trong "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" nhưng để biến nó thành JDK mặc định, tôi đã phải đặt biến hệ thống JAVA_HOME trong .bash_profile trong thư mục chính "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" để nó hoạt động và chạy ngay bây giờ nhờ ý tưởng của serkan


xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile.
Oleksii Kyslytsyn

5

Dành cho:

  • HĐH X: 10.11.6

  • Java: 8

Tôi xác nhận câu trả lời của @Morrie.

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;

Nhưng nếu bạn đang chạy container, cuộc sống của bạn sẽ dễ dàng hơn


2
Tôi nghĩ rằng đây nên là một bình luận.
Thunderforge

1
Tôi không nghĩ, bởi vì có một giá trị gia tăng đó là `export JAVA_HOME =`. ... Còn bạn thì sao @Thunderforge
Abdennour TOUMI

xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile.
Oleksii Kyslytsyn

3

which javavào terminal để hiển thị nơi nó được cài đặt.


1
Có, xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile.
Oleksii Kyslytsyn

-1

Tùy chọn hệ thống sau đó bảng điều khiển Java rồi Java rồi View sẽ hiển thị vị trí chính xác của JRE mặc định hiện được cài đặt.


xuất JAVA_HOME = $ (/ usr / libexec / java_home) tại ~ / .bash_profile
Oleksii Kyslytsyn
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.