全局设置 JVM 的属性

Globally setting properties for JVM

是否有任何方法可以设置适用于所有 java 进程的特定属性(java.exejavaw.exe for windows)运行那台机器?

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

我知道我们可以将它作为 -D 参数传递,但它仅适用于 java 进程 right.But 我以另一种方式需要它 - 对于每个 java 进程开始。

有什么办法吗?

尝试使用 Java 8:

您可以使用环境变量_JAVA_OPTIONSjava.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

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

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

另见