部署.properties 文件中的系统范围 JRE 设置被忽略了吗?

部署.properties 文件中的系统范围 JRE 设置被忽略了吗?

基本上我有同样的问题这个问题。但是,建议的解决方案对我来说不起作用,在 Win2003 服务器和用于测试的 Win7 笔记本电脑上都不起作用。

我有一个 Java SE 6 程序,由 .Net 程序通过 ActiveX-bridge dll 启动。为了进行测试,我使用了安装了 3 个 JRE 的 Win7 计算机:jdk1.7.0_55、jre1.6.0_45 和 jre1.6.0_38-x64。该应用程序始终使用 jre1.6.0_45,并以最大 95040KB 的内存启动,但我需要更多内存。

增加内存的方法是编辑文件<userprofile>\AppData\LocalLow\Sun\Java\Deployment\deployment.properties并添加以下行:

deployment.javaws.jre.1.args=-Xmx100m

但问题是这只对一个用户有效,我希望它对服务器上的所有用户有效。

正如所讨论的这个答案我创建了一个文件C:\Windows\Sun\Java\Deployment\deployment.config,内容如下

deployment.system.config=file\:C\:/Windows/Sun/Java/Deployment/deployment.properties

然后我将用户配置文件中的deployment.properties文件复制到该C:\Windows\Sun\Java\Deployment\文件夹​​中,并再次将该deployment.javaws.jre.1.args=-Xmx100m行添加到复制的文件中。但奇怪的是,这不起作用。

我到目前为止尝试过的事情:

  • 将 deploy.config 和 deploy.properties 文件放在所用 JRE (D:\Java\jre1.6.0_45\lib) 和最新 JRE (D:\Java\jdk1.7.0_55\jre\lib) 的 lib 文件夹中

  • 将文件放在仅安装了一个 JRE(v1.6.0_11)的(虚拟)Win2003 服务器的 C:\Windows\Sun\Java\Deployment 文件夹中

  • 添加这些行deployment.javaws.jre.0.args=-Xmx100deployment.javaws.jre.2.args=-Xmx100这样所有安装的 JRE 都会使用相同的设置

  • 在deployment.config文件中添加了第二行deployment.system.config.mandatory=true,并将deployment.properties文件的路径更改为不存在的路径->什么都没有发生,应用程序可以正常启动,因此似乎deployment.config文件被JRE完全忽略了。

有人知道我哪里错了吗?

答案1

  1. 我不确定这file\:C\:/Windows/Sun/Java/Deployment/deployment.properties是否有效Windows 文件 URIORACLE 文档列出了稍有不同且更合理的一个:file:///C:/Windows/Sun/Java/Deployment/deployment.properties

  2. 尝试设置deployment.system.config.mandatoryTrue,看看你的应用是否启动失败。如果失败,则意味着 JAVA 无法deployment.config通过你的 URI 访问,需要修复:

    deploy.system.config.mandatory 属性是一个布尔值。如果设置为 true,则必须找到并成功加载由 deploy.system.config 属性指向的 deploy.properties 文件,否则,任何内容都无法运行。如果该属性设置为 false,则尝试查找并加载由deployment.system.config 属性指向的deployment.properties文件。如果成功,则使用该文件,否则,将忽略该文件。deployment.system.config.mandatory 属性的默认值为 false。

  3. 这个帖子建议您可以尝试删除:

    • 文件:%localappdata%\Sun\Java\Deployment\deployment.properties

    • 注册表项:HKEY_CURRENT_USER\Software\AppDataLow\Software\JavaSoft\DeploymentProperties

  4. JAVA 7 存在一个问题,本文对此进行了描述:使用 SCCM/MDT 进行 Java 1.7 自动更新部署

更多想法:

我开始认为这个 JRE 系统范围的配置不适用于任何 Java 版本。或者我完全错过了什么

嗯,我发现它肯定不起作用1.6.0_03 和 1.6.0_07

问:系统级部署属性文件中忽略了与 Java 插件相关的部署属性。该问题在 1.6.0_03 和 1.6.0_07 上完全可重现。

A: 使用 6u14 b01 测试。系统级部署配置在新 Java 插件中运行。我们不会为旧插件修复它。关闭 CR,因为在新插件中无法重现。

系统级部署配置是 java webstart 的一个功能。它尚未在 java 插件中使用。

自 6u10 起,新 Java 插件和 Java Webstart 使用相同的 JRE 选择机制。这使得新插件能够适应系统级配置。将此 CR 标记为 RFE,并将优先级降低至中等。

还有一种解决方法:

以下内容可以作为该问题的解决方案:“如何在 Windows PC 上全局配置属性(例如 Xmx)?”

然而,这并不特定于某些组件,例如 Java 插件或 Java Web Start。

打开Windows控制面板:高级→环境变量→系统变量→新变量
变量名:_JAVA_OPTIONS
变量值:-Xmx256m #(例如)
按“确定”关闭所有窗口

重新启动“Internet Explorer”后,配置将生效。配置将影响所有 Java 程序:启动器“java.exe”和 Java Web Start“javaws.exe”以及由浏览器启动的 Java 插件。

相关内容