全局设置JVM的属性

Tom*_*ian 4 java operating-system process

有没有办法设置适用于该机器上运行的所有Java进程(java.exe,javaw.exe对于Windows)的某些属性?

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

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

有没有办法做到这一点?

And*_*ter 7

尝试使用Java 8:

您可以使用环境变量_JAVA_OPTIONS指定的默认参数java.exejavaw.exe,例如

C:> set _JAVA_OPTIONS=-Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)

快速而肮脏的测试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);
    }
}
Run Code Online (Sandbox Code Playgroud)
C:> javaw com.example.PropertyTest
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

C:> set _JAVA_OPTIONS=-Dfile.encoding=UTF-8
C:> javaw com.example.PropertyTest
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

也可以看看