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
20
A
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
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
Thực ra, tôi đã thử cách này và dường như không hoạt động ... – weiji
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
Nó có thể là một vấn đề thoát vỏ. – daveb