Windows

deployment.properties 文件中的系統範圍的 JRE 設置被忽略了嗎?

  • March 3, 2015

基本上我和這個問題有同樣的問題。但是,建議的解決方案對我不起作用,不適用於 Win2003 伺服器,也不適用於用於測試的 Win7 筆記型電腦。

我有一個由 .Net 程序通過 ActiveX-bridge dll 啟動的 Java SE 6 程序。為了測試,我使用安裝了 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行添加到複製的文件中。但奇怪的是,這不起作用。

到目前為止我嘗試過的事情:

  • 將 deployment.config 和 deployment.properties 文件放在使用的 JRE (D:\Java\jre1.6.0_45\lib) 和最新 JRE (D:\Java\jdk1.7.0_55\jre) 的 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. 我不確定這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 訪問,需要修復:

deployment.system.config.mandatory 屬性是一個布爾值。**如果設置為true,則必須找到deployment.system.config 屬性指向的deployment.properties 文件並成功載入,否則不允許執行任何內容。**如果該屬性設置為 false,則會嘗試查找並載入部署。deployment.system.config 屬性指向的屬性文件。如果成功,則使用該文件,否則,忽略該文件。deployment.system.config.mandatory 屬性的預設值為 false。

  1. 這篇文章建議,您可以嘗試刪除:
  • 文件:%localappdata%\Sun\Java\Deployment\deployment.properties
  • 系統資料庫項:HKEY_CURRENT_USER\Software\AppDataLow\Software\JavaSoft\DeploymentProperties
  1. JAVA 7 存在一個問題,在這篇文章中有所描述:Java 1.7 Auto-Update Deployment with SCCM/MDT

更多想法:

我開始認為這種 JRE 系統範圍的配置不適用於任何 Java 版本。那或者我完全錯過了一些東西

好吧,我發現它絕對不適用於1.6.0_03 和 1.6.0_07

問: Java 外掛相關的部署屬性在系統級部署屬性文件中被忽略。該問題在 1.6.0_03 和 1.6.0_07 上可嚴格重現。

答: 使用 6u14 b01 測試。系統級部署配置正在新的 java 外掛中執行。我們不會為舊外掛修復它。關閉 CR,因為在新外掛中不可重現。

系統級部署配置是 java webstart 的一個特性。它還沒有在java外掛中使用。

從 6u10 開始,新的 java 外掛和 java webstart 使用相同的 jre 選擇機制。這使得新外掛可以適應系統級配置。將此 CR 標記為 RFE,並將優先級降低到中等。

並且有一種解決方法:

以下可以作為該問題的解決方法:“如何在 Windows PC 上全域配置屬性(例如 Xmx)?”

然而,這並不特定於某些組件,如 Java Plugin 或 Java Web Start。

打開 Windows 控制面板:高級 → 環境變數 → 系統變數 → 新變數

變數名:_JAVA_OPTIONS

變數值:-Xmx256m #(例如)

按確定關閉所有視窗

重新啟動“Internet Explorer”後,配置將處於活動狀態。該配置將影響所有 Java 程序:啟動器“java.exe”和 Java Web Start“javaws.exe”以及由瀏覽器啟動的 Java 外掛。

引用自:https://serverfault.com/questions/671871