Игнорируются общесистемные настройки JRE в файле deployment.properties?

Игнорируются общесистемные настройки JRE в файле deployment.properties?

В принципе у меня та же проблема, что и уэтот вопрос. Однако предложенное решение у меня не работает ни на сервере Win2003, ни на ноутбуке Win7, используемом для тестирования.

У меня есть программа Java SE 6, которая запускается программой .Net через ActiveX-bridge dll. Для тестирования я использовал свой компьютер Win7 с тремя установленными JRE: jdk1.7.0_55, jre1.6.0_45 и jre1.6.0_38-x64. Приложение всегда использует jre1.6.0_45 и запускается с максимальным объемом памяти 95040 КБ, но мне нужно немного больше.

Для увеличения объема памяти можно отредактировать файл <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 в папке lib используемой JRE (D:\Java\jre1.6.0_45\lib) и самой последней версии JRE (D:\Java\jdk1.7.0_55\jre\lib)

  • размещение файлов в папке C:\Windows\Sun\Java\Deployment (виртуального) сервера Win2003 с установленной только одной JRE (v1.6.0_11)

  • добавил строки deployment.javaws.jre.0.args=-Xmx100и deployment.javaws.jre.2.args=-Xmx100теперь все установленные JRE будут использовать те же настройки

  • добавил вторую строку в deployment.system.config.mandatory=trueфайл deployment.config и изменил путь к файлу deployment.properties на несуществующий -> Ничего не произошло, и приложение запустилось нормально, так что, похоже, файл deployment.config полностью игнорируется JRE.

Кто-нибудь знает, где я ошибаюсь?

решение1

  1. Я не уверен, что это file\:C\:/Windows/Sun/Java/Deployment/deployment.propertiesдопустимо.URI файла Windows.Документация ORACLEперечисляет немного другой и более правдоподобный вариант:file:///C:/Windows/Sun/Java/Deployment/deployment.properties

  2. Попробуйте установить deployment.system.config.mandatoryи Trueпосмотрите, не запустится ли ваше приложение. Если это не удается, это означает, что JAVA не может получить доступ deployment.configпо вашему URI и это нужно исправить:

    Свойство deployment.system.config.mandatory является логическим.Если задано значение true, файл deployment.properties, на который указывает свойство deployment.system.config, должен быть найден и успешно загружен, в противном случае запуск невозможен.Если свойство установлено в false, делается попытка найти и загрузить файл deployment. properties, на который указывает свойство deployment.system.config. В случае успеха файл используется, в противном случае файл игнорируется. Значение по умолчанию для свойства deployment.system.config.mandatory — false.

  3. Эта почтапредполагает, что вы можете попробовать удалить:

    • Файл:%localappdata%\Sun\Java\Deployment\deployment.properties

    • Ключ реестра:HKEY_CURRENT_USER\Software\AppDataLow\Software\JavaSoft\DeploymentProperties

  4. Существует проблема с JAVA 7, описанная в этом посте:Развертывание автоматического обновления Java 1.7 с помощью 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, один и тот же механизм выбора jre используется как для нового плагина java, так и для java webstart. Это позволяет новому плагину адаптировать конфигурацию системного уровня. Отметьте этот CR как RFE и понизьте приоритет до среднего.

И есть своего рода обходной путь:

Обходным путем для решения проблемы может служить следующее: «Как настроить свойство (например, Xmx) глобально на ПК с Windows?»

Однако это не относится только к некоторым компонентам, таким как Java Plugin или Java Web Start.

Откройте Панель управления Windows: Дополнительно → Переменные среды → Системные переменные → Новая переменная
Имя переменной:_JAVA_ОПЦИИ
Значение переменной:-Xмx256м #(например)
Закройте все окна, нажав ОК

После перезапуска "Internet Explorer" конфигурация будет активна. Конфигурация повлияет на все программы Java: как на лаунчер "java.exe", так и на Java Web Start "javaws.exe" и на Java Plugin, поскольку он запускается браузером.

Связанный контент