В основном у меня та же проблема, что и в этот вопрос. Однако предлагаемое решение не работает для меня, ни на сервере Win2003, ни на ноутбуке Win7, используемом для тестирования.
У меня есть программа Java SE 6, которая запускается программой .Net через dll ActiveX-bridge. Для тестирования я использовал свой компьютер Win7 с 3 установленными 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 на то, чего не существует -> Ничего не произошло, и приложение запустится нормально, поэтому похоже, что JRE полностью игнорирует файл deployment.config.
Кто-нибудь знает, где я ошибаюсь?
Я не уверен что file\:C\:/Windows/Sun/Java/Deployment/deployment.properties
действительный URI файла Windows. Документация ORACLE перечисляет несколько другой и более правдоподобный: file:///C:/Windows/Sun/Java/Deployment/deployment.properties
Попробуйте установить deployment.system.config.mandatory
к True
и посмотрите, не запускается ли ваше приложение. Если это не удается, это означает, что JAVA не может получить доступ deployment.config
по вашему URI, и это требует исправления:
Свойство deployment.system.config.mandatory является логическим. Если установлено значение true, файл deployment.properties, на который указывает свойство deployment.system.config, должен быть найден и успешно загружен, в противном случае запуск ничего не разрешается. Если для свойства установлено значение false, предпринимается попытка найти и загрузить развертывание. properties, на который указывает свойство deployment.system.config. В случае успеха используется файл, в противном случае файл игнорируется. По умолчанию для свойства deployment.system.config.mandatory установлено значение false.
Эта почта предполагает, что вы можете попробовать удалить:
Файл: %localappdata%\Sun\Java\Deployment\deployment.properties
Ключ реестра: HKEY_CURRENT_USER\Software\AppDataLow\Software\JavaSoft\DeploymentProperties
Проблема с 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. Это позволяет новому плагину адаптировать конфигурацию системного уровня. Отметьте этот запрос как RFE и установите приоритет ниже среднего.
И есть своего рода обходной путь:
Следующее может служить обходным решением проблемы: «Как настроить свойство (например, Xmx) глобально на ПК с Windows?»
Однако это не относится к определенным компонентам, таким как подключаемый модуль Java или Java Web Start.
Откройте панель управления Windows: Дополнительно → Переменные среды → Системные переменные → Новая переменная.
Имя переменной: _JAVA_OPTIONS
Значение переменной: -Xmx256m #(например)
Закройте все окна, нажав ОКПосле перезапуска «Internet Explorer» конфигурация станет активной. Конфигурация повлияет на все программы Java: как средство запуска «java.exe», так и Java Web Start «javaws.exe», а также подключаемый модуль Java, запускаемый браузером.