如何设置java系统属性,以便每当我启动JVM而不将其添加到命令行参数时它都有效

Bug*_*ker 36 java jvm-arguments

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

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

a_h*_*ame 49

您可以JAVA_TOOL_OPTIONS在OS中设置set environment变量.所有Java工具(java,javac,..)都将选择此变量并使用它.所以你可以使用

SET JAVA_TOOL_OPTIONS=-Dsun.locale.formatasdefault=true
Run Code Online (Sandbox Code Playgroud)

我使用它来强制每个JVM的特定区域设置.

但这仅适用于通过Java工具启动应用程序的情况.如果它是从例如调用jvm DLL的C程序开始的,则不会使用它.

编辑:我刚刚测试了它,似乎JAVA_TOOLS_OPTIONS也在DLL启动时被拾取(使用WinRun4J作为启动器的Swing应用程序验证)

请参阅:http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/envvars.html

  • 我们使用`_JAVA_OPTIONS`似乎可以使用,不知道这是否适用于通过DLL调用,我怀疑它. (3认同)