Câu hỏi lý do cho sự tồn tại của biến môi trường JAVA_HOME là gì?


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ì?


76
2018-02-24 08:18


gốc


bạn có thể đọc đây - Sergey Vedernikov
không cần phải tạo câu hỏi trước khi tìm kiếm trong google ... - Sergey Vedernikov
Tôi đã được Googling cùng một câu hỏi, và tìm thấy câu hỏi SO này. Tôi tìm thấy chính xác những gì tôi cần một cách nhanh chóng và có thể sử dụng một trang web mà tôi quen thuộc. Cảm ơn bạn đã đặt câu hỏi. Chỉ vì một câu hỏi có thể được trả lời bởi Google không có nghĩa là nó không nên được hỏi trên SO. - Buttons840
Điều này. Nói cho mọi người biết "Google Something" trên trang web dành riêng cho Câu hỏi trả lời để Google có thứ gì đó để lập chỉ mục là ngược. - Danejir
mặc dù tất cả những nhận xét và câu trả lời này, tôi thấy không có thực tế lý do để đặt biến môi trường này. Không có lý do. Tôi đến đây từ cố gắng để thiết lập này với wsdl2java. Nếu tôi đã không sử dụng công cụ này, không cần biến env .... dường như nó chỉ là một số công cụ sử dụng var này. nhưng tại sao? - Thufir


Các câu trả lời:


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 Biến môi trường JAVA_HOME trỏ đến thư mục nơi môi trường chạy Java (JRE) được cài đặt trên máy tính của bạn.


20
2018-02-24 08:23



Một sửa chữa: JAVA_HOME nên trỏ đến một JDK không phải là một JRE. Nhiều ứng dụng không quan tâm đến sự khác biệt nhưng nó có ý nghĩa đối với một số ứng dụng. - Chris Nava
Cũng có sẵn thư mục JRE 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. - Max
@ChrisNava: Dường như việc trỏ JAVA_HOME đế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 mà tôi đoán): stackoverflow.com/questions/17601827/…. Vì vậy, nói "nên" đang nói quá nhiều. - cic


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


16
2018-02-24 08:21



Nhưng nó là ngu ngốc, bởi vì java phải ở trong đường dẫn, và nhị phân có thể định vị chính nó và mở các tệp khác bằng cách sử dụng đường dẫn tương đối. - LtWorf
Nó hữu ích khi java là không phải trên $ PATH, ví dụ: khi bạn có nhiều cài đặt SDK. - Haakon
Đối số thứ nhất cho tệp nhị phân là tên đầy đủ của chính tệp thi hành, java không cần phải nằm trong đường dẫn để tìm thư mục riêng của nó. - LtWorf


JAVA_HOME là 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 thấy đây để biết thêm thông tin.


6
2018-02-24 13:32



Bạn đang bế tắc environment với path, đó là những thứ khác nhau nhưng được sử dụng trong Windows giống hệt như trong Linux. - Val
@val chỉ chỉ ra, mà từ đó đã được sửa chữa trong câu trả lời của mình. - barlop
Chỉ cần thêm vào danh sách JAVA_HOME trong Windows 10 - filip_j


Khi bạn chạy một chương trình Java, trước tiên bạn cần phải bắt đầu JVM, thông thường điều 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 đó bằng nhiều cách, ví dụ như chỉ cho một đường dẫn đầy đủ:

C:\somedir\bin\java.exe

hoặc có thể có nó trên PATH 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 đó không đủ, bản thân java.exe cần nhiều tài nguyên khác, không kém phần quan trọng là tất cả các thư viện Java. Bằng cách thiết lập biến môi trường JAVA_HOME bạn chỉ định nơi JRE, và do đó tất cả các tài nguyên thời gian chạy đó, được tìm thấy. Bạn nên đảm bảo rằng Java cụ thể mà bạn thực thi phù hợp với cài đặt của JAVA_HOME.

Bạn cũng có thể cần phải đặt JAVA_HOME\bin sớm trên con đường của bạn để nếu java.exe sinh ra một bản sao của chính nó (ví dụ để biên dịch một JSP) nó chọn lên phiên bản đúng.


4
2018-02-24 09:06





JAVA_HOME cho 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  trong PATH của bạn trước, rất hữu ích để có thể nói JAVA_HOME=/usr/lib/jvm/java-1.5.0 và có "java" mặc định mà bạn chạy chương trình bằng cách sử dụng một cái khác, thay vào đó, như là một vấn đề của một môi trường thiết lập. Điều này cho phép một lập trình viên sử dụng java họ cần, ngay cả khi nó không được cài đặt ở mộ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à không dễ bị đặt lại trong PATH bởi chương trình đã cài đặt khác, chẳng hạn như bản cập nhật chính cho java.


1
2018-02-07 00:55





JAVA_HOME được sử dụng để thiết lập một môi trường cho phép bạn chạy các chương trình java trên máy tính hoặc máy tính của bạn sau khi cài đặt JDK (Bộ phát triển Java)


-1
2017-07-30 06:23