Сервис Apache Commons Daemon ломает JRE (и другие странные вещи)
Мы разработали jar, который упаковывается как служба Windows, используя Procrun, компонент Apache Commons Daemon для служб Windows. Все работает хорошо на моем собственном компьютере и на нескольких других машинах для разработки, но когда мы установили его в производственной среде (Windows Server 2008), мы начали странно себя вести.
Во-первых, после запуска и остановки службы Java по какой-то причине перестает работать. Ввод классической "Java-версии" в любой командной строке не дает абсолютно никакого вывода. Попытка запустить любое приложение Java не имеет абсолютно никакого эффекта. Единственное решение - переустановить JRE заново. Если вы остановите и запустите службу после переустановки JRE, она снова будет повреждена.
Еще одна странная вещь, которая происходила. Иногда при использовании prunmgr для управления нашим сервисом (после переименования его в имя нашего сервиса, скажем, "MYSERVICE"), мы получаем сообщение о том, что сервис "gMYSERVICE" не установлен. Кажется, в некоторых случаях кажется, что к нашему сервису добавлена буква "g". Иногда существуют два дополнительных скрытых файла, возможно, копии prunsrv и prunmgr, к которым добавляется 'g', как в gprunsrv.exe и gMYSERVICE.exe. Эти файлы нельзя увидеть с помощью системного обозревателя, даже если включен режим скрытых файлов, но они могут быть обнаружены TeamViewer.