У меня проблема с запуском Java-процесса в качестве службы Windows из-за разрешений NTFS.(http://community.jboss.org/wiki/RunJBossAsAServiceOnWindows).
Служба успешно устанавливается, но возникают проблемы с запуском из-за прав доступа к файлу.
- Если я изменю «login» windows-службы на мою учетную запись (например, домен / логин),служба работает нормально.
- Если я изменяю разрешения файловой системы с 755 на 777, служба работает нормально.
Пример журнала
08:58:02,250 ERROR [MainDeployer] Could not make local copy for file:/J:/projects/devtools/pe64-jboss-4.2.2.GA/server/solr/conf/jboss-service.xml
java.io.IOException: Access is denied
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
"Yo No Comprende". Я думал, что учетная запись "Local System" была "root". ("Local System" - учетная запись по умолчанию)
«chmod -R 777 <>» не является опцией. (дыра в безопасности)
Итак, подведем итог:
- Что такое «Локальная система»"и права доступа к файлам Windows NTFS?
- Можете ли вы добавить" Локальная система "в" Моя группа "
- Что-то не так в моем локальном процессе сборки (например, неверная версия UMask для Windows?)
- Любые другие ошибки, работающие с Java в качестве службы Windows?
- После 15 с лишним лет существования ОС на базе Windows NT, почему службы все еще такиеболь?
Обновление / Решение
Оказывается, что в более поздних версиях Windows (Vista и Window 7) MSFT закрыла дыру в безопасности, которая позволяла сервисудобраться до чьих-либо временных файлов.
У учетной записи «Local System» просто нет доступа ни к одному общему / предварительно созданному каталогу «temp».
Решение в мире java:
- создайте свой собственный временный каталог.Предоставьте ему соответствующие разрешения)
- pass "-Djava.io.tmpdir = / path / to / my / temp / dir" в качестве аргумента jvm.
спасибо
будет