Разница между работой в отладчике и без него может быть связана с отключением отладчика ASLR. Это может скрыть проблему, когда вы пытаетесь ее отладить.
Попробуйте отменить это. кажется , что в LLDB это должно быть сделано командой
settings set target.disable-aslr false
, которая должна отменить отключение ASLR. В GDB это будет
set disable-randomization off
Не забудьте перезапустить программу под вашим отладчиком (без перезапуска отладчика!), Чтобы этот параметр вступил в силу. В GDB это команда run
, нечто подобное должно быть в LLDB.
Обертывание процесса с srvany.exe и запуск как услуга работали бы также.
Если Вы хотите, чтобы это работало под Запланированными задачами, необходимо удостовериться, что не имеете "только выполненными, когда пользователь вошел в систему" проверенный, который обычно означает, что необходимо предоставить пароль.
Сервис окон был бы нормальным способом сделать это: сервисная обертка Java является третьей стороной, но загрузки людей используют ее.
Если бы Вы действительно хотели не использовать сторонний метод, то Вы могли бы использовать svrany.exe (http://support.microsoft.com/kb/137890) на Windows NT или позже, но это не специально разработано для Java.
Я использую Сервисную Обертку Java для запуска процесса Java как сервис окон. Я предполагаю, что это работает similary к srvany.exe, упомянутому в предыдущей регистрации.
I don't know it this is relevant but we are using a flag to the jvm so it does not shutdown on logoffs
"java -Xrs"