Systemweite JRE-Einstellungen in der Datei „deployment.properties“ werden ignoriert?

Systemweite JRE-Einstellungen in der Datei „deployment.properties“ werden ignoriert?

Im Grunde habe ich das gleiche Problem wie indiese Frage. Allerdings funktioniert die vorgeschlagene Lösung bei mir nicht, weder auf einem Win2003-Server noch auf einem zum Testen verwendeten Win7-Laptop.

Ich habe ein Java SE 6-Programm, das von einem .Net-Programm über eine ActiveX-Bridge-DLL gestartet wird. Zum Testen habe ich meinen Win7-Computer mit 3 installierten JREs verwendet: jdk1.7.0_55, jre1.6.0_45 und jre1.6.0_38-x64. Die Anwendung verwendet immer jre1.6.0_45 und startet mit maximal 95040 KB Speicher, aber ich brauche etwas mehr.

Der Speicher lässt sich vergrößern, indem Sie die Datei bearbeiten <userprofile>\AppData\LocalLow\Sun\Java\Deployment\deployment.propertiesund die folgende Zeile hinzufügen:

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

Das Problem besteht jedoch darin, dass dies nur für einen Benutzer funktioniert und ich möchte, dass es für alle Benutzer auf einem Server funktioniert.

Wie indiese AntwortIch habe eine Datei C:\Windows\Sun\Java\Deployment\deployment.configmit Inhalt erstellt

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

Anschließend habe ich die Datei deployment.properties aus meinem Benutzerprofil in den C:\Windows\Sun\Java\Deployment\Ordner kopiert und die Zeile erneut in die kopierte Datei eingefügt deployment.javaws.jre.1.args=-Xmx100m. Aber seltsamerweise funktioniert das nicht.

Dinge, die ich bisher versucht habe:

  • Platzieren der Dateien „deployment.config“ und „deployment.properties“ im Ordner „lib“ der verwendeten JRE (D:\Java\jre1.6.0_45\lib) und der aktuellsten JRE (D:\Java\jdk1.7.0_55\jre\lib).

  • Platzieren der Dateien im Ordner C:\Windows\Sun\Java\Deployment eines (virtuellen) Win2003-Servers mit nur einer installierten JRE (v1.6.0_11)

  • die Zeilen hinzugefügt deployment.javaws.jre.0.args=-Xmx100und deployment.javaws.jre.2.args=-Xmx100so würden alle installierten JREs die gleichen Einstellungen verwenden

  • zweite Zeile zur Datei „deployment.config“ hinzugefügt deployment.system.config.mandatory=trueund den Pfad zur Datei „deployment.properties“ in einen nicht vorhandenen Pfad geändert -> Es ist nichts passiert und die Anwendung wurde ordnungsgemäß gestartet. Es scheint also, dass die Datei „deployment.config“ von der JRE völlig ignoriert wird.

Hat jemand eine Ahnung, was ich falsch mache?

Antwort1

  1. Ich bin nicht sicher, ob das file\:C\:/Windows/Sun/Java/Deployment/deployment.propertieseine gültigeWindows-Datei-URI.ORACLE-Dokumentationlistet etwas andere und plausiblere auf:file:///C:/Windows/Sun/Java/Deployment/deployment.properties

  2. Versuchen Sie, die Einstellung deployment.system.config.mandatoryauf zu setzen True, und prüfen Sie, ob Ihre App nicht gestartet werden kann. Wenn dies fehlschlägt, bedeutet dies, dass JAVA nicht deployment.configüber Ihre URI zugreifen kann und dies behoben werden muss:

    Die Eigenschaft deployment.system.config.mandatory ist ein Boolescher Wert.Wenn der Wert auf „true“ gesetzt ist, muss die Datei „deployment.properties“, auf die die Eigenschaft „deployment.system.config“ verweist, gefunden und erfolgreich geladen werden, andernfalls darf nichts ausgeführt werden.Wenn die Eigenschaft auf „false“ gesetzt ist, wird versucht, die Datei „deployment.properties“ zu finden und zu laden, auf die die Eigenschaft „deployment.system.config“ verweist. Wenn dies erfolgreich ist, wird die Datei verwendet, andernfalls wird sie ignoriert. Der Standardwert für die Eigenschaft „deployment.system.config.mandatory“ ist „false“.

  3. Dieser Beitragschlägt vor, dass Sie versuchen können, Folgendes zu löschen:

    • Datei:%localappdata%\Sun\Java\Deployment\deployment.properties

    • Registrierungsschlüssel:HKEY_CURRENT_USER\Software\AppDataLow\Software\JavaSoft\DeploymentProperties

  4. Es gibt ein Problem mit JAVA 7, das in diesem Beitrag beschrieben wird:Java 1.7-Bereitstellung mit automatischer Aktualisierung und SCCM/MDT

Weitere Gedanken:

Ich fange an zu glauben, dass diese systemweite JRE-Konfiguration für keine Java-Version funktioniert. Entweder das, oder ich übersehe etwas komplett

Nun, ich habe festgestellt, dass es definitiv nicht funktioniert hat in1.6.0_03 und 1.6.0_07:

Q:Bereitstellungseigenschaften im Zusammenhang mit Java-Plug-ins werden in der Bereitstellungseigenschaftendatei auf Systemebene ignoriert. Das Problem ist unter 1.6.0_03 und 1.6.0_07 problemlos reproduzierbar.

A: Getestet mit 6u14 b01. Die Bereitstellungskonfiguration auf Systemebene funktioniert im neuen Java-Plugin. Wir werden es für das alte Plugin nicht reparieren. Schließen Sie den CR, da er im neuen Plugin nicht reproduzierbar ist.

Die Bereitstellungskonfiguration auf Systemebene ist eine Funktion für Java Webstart. Sie wurde im Java-Plugin nicht verwendet.

Seit 6u10 wird derselbe JRE-Auswahlmechanismus sowohl für neue Java-Plugins als auch für Java Webstart verwendet. Dadurch können neue Plugins die Konfiguration auf Systemebene anpassen. Markieren Sie diesen CR als RFE und setzen Sie die Priorität auf mittel.

Und es gibt eine Art Workaround:

Als Workaround für das Problem könnte folgender Beitrag dienen: „Wie konfiguriere ich eine Eigenschaft (z. B. Xmx) global auf einem Windows-PC?“

Dies ist jedoch nicht spezifisch für bestimmte Komponenten wie Java Plugin oder Java Web Start.

Öffnen Sie die Windows-Systemsteuerung: Erweitert → Umgebungsvariablen → Systemvariablen → Neue Variable
Variablenname:_JAVA_OPTIONS
Variablenwert:-Xmx256m #(zum Beispiel)
Schließen Sie alle Fenster mit OK

Beim Neustart von „Internet Explorer“ ist die Konfiguration aktiv. Die Konfiguration wirkt sich auf alle Java-Programme aus: sowohl auf den Launcher „java.exe“ und Java Web Start „javaws.exe“ als auch auf das Java-Plugin, wenn es von einem Browser gestartet wird.

verwandte Informationen