如何设置java系统属性,使其在启动JVM时有效,而无需将其添加到命令行参数中

如何设置java系统属性,使其在启动JVM时有效,而无需将其添加到命令行参数中,java,jvm-arguments,Java,Jvm Arguments,Java 1.7中从操作系统获取默认语言环境的方式发生了变化。有一些方法可以恢复旧的行为,例如在启动JVM实例时设置标志-Dsun.locale.formatasdefault=true 我想永久设置这个标志,这样我就不必每次启动JVM实例时都在命令行参数中指定它。是否有文件或任何其他可能更改JVM的默认设置?类似于Eclipse.ini文件,但对于JVM本身?您可以在操作系统中设置环境变量。所有Java工具(Java,javac,…)都会选择并使用这个变量。因此,您可以使用 SET JAVA_

Java 1.7中从操作系统获取默认语言环境的方式发生了变化。有一些方法可以恢复旧的行为,例如在启动JVM实例时设置标志-Dsun.locale.formatasdefault=true


我想永久设置这个标志,这样我就不必每次启动JVM实例时都在命令行参数中指定它。是否有文件或任何其他可能更改JVM的默认设置?类似于Eclipse.ini文件,但对于JVM本身?

您可以在操作系统中设置环境变量。所有Java工具(Java,javac,…)都会选择并使用这个变量。因此,您可以使用

SET JAVA_TOOL_OPTIONS=-Dsun.locale.formatasdefault=true
我使用它强制每个JVM使用特定的语言环境

但这只有在通过Java工具启动应用程序时才有效。例如,如果它是从调用jvm DLL的C程序启动的,则不会使用它

编辑:我刚刚对它进行了测试,当DLL启动时,JAVA_工具_选项似乎也被选中(通过使用WinRun4J作为启动器的Swing应用程序进行验证)


请参阅:

我不相信有,但您可以创建一个引导类,该类自动执行您的程序(在另一个类中使用“true”main方法),并提供所需的命令行参数。我们使用
\u JAVA\u OPTIONS
这似乎可以使用,但不知道这是否适用于通过DLL调用,“我怀疑。”程序员:有趣。我不知道关于
\u JAVA\u OPTIONS
@a\u horse\u和\u no\u name不,我直到大约一周前才知道。如果我想添加系统属性xyz abc.dest=“path”,有人能帮我清理一下吗?我是否必须用“-D”作为前缀?