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

2024-01-12

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

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


您可以设置环境变量JAVA_TOOL_OPTIONS https://bugs.openjdk.java.net/browse/JDK-4971166在你的操作系统中。所有 Java 工具(java、javac、..)都会选择这个变量并使用它。所以你可以例如使用

SET JAVA_TOOL_OPTIONS=-Dsun.locale.formatasdefault=true

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置 java 系统属性,使其在每次启动 JVM 时都有效,而不将其添加到命令行参数 的相关文章

随机推荐