全局设置JVM的属性

时间:2015-11-18 13:34:56

标签: java process operating-system

有没有办法设置适用于该机器上运行的所有java进程(java.exejavaw.exe for windows)的某些属性?

更清楚地假设我想使用特定时区应用于该机器中运行的所有Java进程(不更改系统时区)。

我知道我们可以将它作为-D参数传递,但它只适用于那个java进程权限。但我需要它以另一种方式 - 对于每个java进程启动。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:5)

尝试使用Java 8:

您可以使用环境变量_JAVA_OPTIONS来指定java.exejavaw.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

enter image description here

C:> set _JAVA_OPTIONS=-Dfile.encoding=UTF-8
C:> javaw com.example.PropertyTest

enter image description here

通过将环境变量设置为系统环境变量,它适用于所有Java进程。

另见