2009-09-30 41 views
20

Làm cách nào để thay đổi thuộc tính system.home của hệ thống từ bên ngoài chương trình java của tôi, để nó nghĩ rằng đó là một thư mục khác với D: \ Documents and Settings \% USERNAME%? Thông qua các biến môi trường, hoặc đối số VM?Thay đổi thuộc tính hệ thống user.home

Trả lời

29

Thiết lập luận VM nên làm việc:

java -Duser.home=<new_location> <your_program> 

Dưới đây là một trường hợp thử nghiệm:

public class test { 
    public static void main(String[] args) { 
    System.out.println(System.getProperty("user.home")); 
    } 
} 

Tested với java 1.5.0_17 trên Win XP và Linux

java test 
/home/ChssPly76 

java -Duser.home=overwritten test 
overwritten 
+1

Thực ra, tôi đã thử cách này và dường như không hoạt động ... – weiji

+1

Tôi cũng đã thử nó, chỉ hoạt động tốt - xem cập nhật mẫu mã của tôi. Bạn đã dùng thử phiên bản java nào? – ChssPly76

+0

Nó có thể là một vấn đề thoát vỏ. – daveb

15

Nếu bạn muốn để đặt user.home cho tất cả các chương trình Java, bạn có thể sử dụng biến môi trường đặc biệt _JAVA_OPTIONS.

Nhưng lưu ý rằng difficult to suppress warning message will be printed.

$ export _JAVA_OPTIONS=-Duser.home=/some/new/dir 
$ java test 
Picked up _JAVA_OPTIONS: -Duser.home=/some/new/dir 
/some/new/dir 
Các vấn đề liên quan