2009-04-20 20 views
5

Đây là câu hỏi thực sự.Có sự khác biệt nào giữa việc thiết lập JAVA_HOME thông qua dòng cmd hoặc GUI

Khi tôi thiết lập JAVA_HOME sử dụng giao diện dòng lệnh Tôi đã sử dụng thiết lập JAVA_HOME = C: \ Program Files \ Java \ jdk1.6.0_13

Tuy nhiên khi tôi mở biến JAVA_HOME từ hệ thống> Advanced> Environment Variables sự thay đổi không hiển thị. Hai cài đặt này có khác nhau không?

Tôi có câu hỏi này mỗi khi tôi thiết lập một Jdk mới và chưa bao giờ hiểu đầy đủ lý do tại sao hai dường như khác nhau.

Trả lời

7

Biến bạn đặt trên dòng lệnh là rằng vỏ lệnh và mọi quá trình khác mà nó bắt đầu. Khi bạn thiết lập nó từ các biến hệ thống/nâng cao/môi trường, nó ảnh hưởng đến bất kỳ quá trình nào khác mà bạn bắt đầu, bao gồm cả trình bao lệnh, sau khi thiết lập nó. Tùy thuộc vào nơi bạn đặt, nó sẽ có sẵn cho cùng một người dùng hoặc bất kỳ người dùng nào khác cũng đăng nhập.

+1

Nó chỉ ảnh hưởng đến các quy trình mới được khởi chạy bởi Explorer (đây là nơi xảy ra thay đổi env). Bất cứ điều gì đã chạy mà khởi động các quy trình mới (Launchy, vv) sẽ khởi động chúng với môi trường cũ. – Herms

+0

@ herms. + 1. bạn nói đúng. như một vấn đề của thực tế, bất kỳ quá trình nào bắt đầu từ trình bao lệnh đó cũng sẽ không nhận được giá trị mới. –

3

JAVA_HOME bạn đặt bằng dòng lệnh chỉ được đặt cho phiên đó của trình bao.

3

Các thay đổi được thực hiện cho quy trình gốc chỉ được truyền cho trẻ em mới được tạo; thử mở một dấu nhắc lệnh mới và kiểm tra giá trị ở đó.

2

gì người khác nói ... :-)

tôi sẽ bổ sung thêm rằng ngay cả sau khi cài đặt biến trong hộp thoại, các quá trình đang chạy là (nói chung) không nhận thức được sự thay đổi: ví dụ. cửa sổ nhắc lệnh sẽ vẫn hiển thị giá trị cũ. Bạn phải bắt đầu một cửa sổ khác để xem thay đổi.
Trong một số trường hợp (hiếm), bạn thậm chí có thể cần đăng xuất và đăng nhập lại để xác thực thay đổi (tôi đã thấy lại gần đây).

Các vấn đề liên quan