81

Nhiều ứng dụng dựa trên java yêu cầu đặt biến env JAVA_HOME. Mục đích của biến này là gì?

|
  • 4
  • 2

    Tôi thấy câu hỏi chưa có câu trả lời. Để tự thực thi java, không cần thiết phải có biến này nếu bạn có thư mục có tệp nhị phân trong đường dẫn. Tất cả các câu trả lời đều chỉ ra điều hiển nhiên: "Nơi java đã được cài đặt". Nhưng tại sao: ý nghĩa của việc chạy các ứng dụng java là gì?

    – Phạm Đạt Uy 06:18:26 30/07/2016
  • 5

    mặc dù tất cả các ý kiến ​​và câu trả lời, tôi thấy không có lý do thực tế để đặt biến môi trường này. Không có lý do. Tôi đến đây từ việc cố gắng thiết lập điều này với wsdl2java. Nếu tôi không sử dụng công cụ này, thì không cần biến env .... dường như chỉ có một số công cụ sử dụng var này. nhưng tại sao?

    – Ngô Hữu Khánh 22:19:23 24/04/2017
  • @Thufir - Tuy nhiên, tôi chưa thấy lý do được nêu rõ ràng ở bất cứ đâu. - JAVA_HOME chỉ là quy ước. Nó không có bất kỳ ý nghĩa đặc biệt nào ngoài mọi người đồng ý sử dụng nó AFAIK - Công dụng duy nhất tôi thấy là nó cung cấp cho các công cụ khả năng phân biệt giữa JRE thường được đặt trong biến PATH và JDK. Thông thường, JAVE_HOME được đặt thành JDK. - Thật rõ ràng. Không có giao dịch với thứ tự các thư mục như bạn có với PATH, nơi có thể có nhiều nơi để tìm exe java.

    – Trần Khắc Anh 02:02:15 12/07/2018
20

Biến môi trường là các chuỗi chứa thông tin như ổ đĩa, đường dẫn hoặc tên tệp.

Các JAVA_HOME biến môi trường điểm đến thư mục nơi mà môi trường thời gian chạy Java (JRE) được cài đặt trên máy tính của bạn.

|
  • 1

    Một điều chỉnh: JAVA_HOME nên trỏ đến JDK chứ không phải JRE. Nhiều ứng dụng không quan tâm đến sự khác biệt nhưng nó rất quan trọng đối với một số người.

    – Đặng Dạ Lan 16:37:52 24/02/2011
  • 1

    Ngoài ra còn có thư mục JRE có sẵn trong JDK. Do đó, với sự trợ giúp của JAVA_HOME, một ứng dụng có thể định vị JDK cũng như JRE.

    – Lý Bảo Huỳnh 10:42:13 03/01/2014
  • 1

    @ChrisNava: Có vẻ như việc trỏ JAVA_HOME vào bản cài đặt JRE là hợp lệ trong một số trường hợp (hầu hết các trường hợp không phát triển tôi đoán): stackoverflow.com/questions/17601827/ . Vì vậy, nói "nên" là nói quá nhiều.

    – Tạ Tân Bình 19:11:10 20/01/2018
16

Mục đích là để chỉ đến nơi Java được cài đặt. $JAVA_HOME/bin/javanên thực thi thời gian chạy Java.

|
  • 1

    Nhưng điều đó thật ngu ngốc, vì java nên nằm trong đường dẫn và tệp nhị phân có thể tự định vị và mở các tệp khác bằng cách sử dụng một đường dẫn tương đối.

    – Đặng Dạ Lan 10:57:48 01/12/2014
  • 1

    Nó hữu ích khi java không có trên $ PATH, ví dụ như khi bạn có nhiều cài đặt SDK.

    – Lý Bảo Huỳnh 15:14:05 01/12/2014
  • 1

    Đối số thứ nhất cho nhị phân là tên đầy đủ của chính tệp thực thi, java không cần phải ở trong đường dẫn để tìm thư mục riêng của nó.

    – Tạ Tân Bình 13:41:06 09/12/2014
  • 1

    @Haakon Là một người đang cố gắng thiết lập nhiều JDK, tại sao bạn không muốn java trên đường dẫn? Làm thế nào để Windows định vị java từ java_home? Tôi nghĩ rằng đường dẫn ít nhiều được định nghĩa là "danh sách các địa điểm mà HĐH sẽ tìm kiếm các tệp thực thi".

    – Tạ Bảo Sơn 05:34:02 07/02/2019
6

Khi bạn chạy một chương trình Java, trước tiên bạn cần khởi động JVM, thông thường, việc này được thực hiện bằng cách chạy một tệp thực thi, trên Windows, đây là java.exe . Bạn có thể nhận được điều đó theo nhiều cách, ví dụ như chỉ đưa ra một đường dẫn đầy đủ:

C:\somedir\bin\java.exe

hoặc có thể có nó trên ĐƯỜNG của bạn.

Bạn chỉ định làm đối số dòng lệnh một số tệp lớp hoặc tệp Jar chứa tệp lớp là chương trình của bạn. Nhưng điều đó là không đủ, bản thân java.exe cần nhiều tài nguyên khác, nhất là tất cả các thư viện Java. Bằng cách đặt biến môi trường JAVA_HOME, bạn chỉ định vị trí của JRE và do đó tất cả các tài nguyên thời gian chạy đó sẽ được tìm thấy. Bạn nên đảm bảo rằng Java cụ thể mà bạn thực hiện khớp với cài đặt của JAVA_HOME.

Bạn cũng có thể cần đặt JAVA_HOME\binsớm trên đường dẫn của mình để nếu java.exesinh ra một bản sao của chính nó (ví dụ để biên dịch một tệp JSP), nó sẽ chọn đúng phiên bản.

|
6

JAVA_HOMElà một biến môi trường .

Nó phải được thiết lập trên hệ điều hành khác nhau. Kiểm tra các liên kết sau.

Cũng xem ở đây để biết thêm thông tin.

|
1

JAVA_HOMEcho phép bạn chạy bất kỳ cài đặt java nào. Ngay cả khi bạn có /usr/lib/jvm/java-1.8.0/bin/java PATH trước, bạn vẫn có thể nói JAVA_HOME=/usr/lib/jvm/java-1.5.0và có "java" mặc định mà bạn chạy các chương trình sử dụng cái khác, thay vào đó, là một vấn đề của cài đặt môi trường. Điều này cho phép lập trình viên sử dụng java mà họ cần, ngay cả khi nó không được cài đặt ở vị trí hệ thống bình thường và kiểm tra hoặc cung cấp khả năng tương thích ngược với phiên bản thay thế đó. Và nó không dễ bị đặt lại trong PATH bởi một chương trình được cài đặt khác, chẳng hạn như bản cập nhật phiên bản chính cho java.

|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.