有没有办法设置适用于该机器上运行的所有java进程(java.exe
,javaw.exe
for windows)的某些属性?
更清楚地假设我想使用特定时区应用于该机器中运行的所有Java进程(不更改系统时区)。
我知道我们可以将它作为-D
参数传递,但它只适用于那个java进程权限。但我需要它以另一种方式 - 对于每个java进程启动。
有没有办法做到这一点?
答案 0 :(得分:5)
尝试使用Java 8:
您可以使用环境变量_JAVA_OPTIONS
来指定java.exe
和javaw.exe
的默认参数,例如
C:> set _JAVA_OPTIONS=-Dfile.encoding=UTF-8
javaw
的快速而肮脏的测试:
package com.example;
import javax.swing.JFrame;
import javax.swing.JTextPane;
public class PropertyTest {
public static void main(String[] args) {
String value = (String) System.getProperties().get("file.encoding");
JTextPane txt = new JTextPane();
txt.setText(value);
JFrame main = new JFrame();
main.add(txt);
main.setVisible(true);
}
}
C:> javaw com.example.PropertyTest
C:> set _JAVA_OPTIONS=-Dfile.encoding=UTF-8
C:> javaw com.example.PropertyTest
通过将环境变量设置为系统环境变量,它适用于所有Java进程。
另见