Ich schreibe ein Dienstprogramm zum Starten und Beenden von Windows-Diensten. Das Programm wird auf viele Computer mit unterschiedlichen Benutzerrechten verteilt, so dass ich die Befehlszeile nicht verwenden möchte. Ich habe versucht, JNA zu verwenden,
%Vor%Wenn ich das Programm starte bekomme ich den folgenden Fehler
com.sun.jna.platform.win32.Win32Exception: Das Handle ist ungültig. unter com.sun.jna.platform.win32.W32ServiceManager.openService (W32ServiceManager.java:77) bei Windowsservices.WindowsServices.main (WindowsServices.java:26)
Irgendwelche Vorschläge wären sehr hilfreich.
Danke für den Vorschlag, der Autor der Frage hat den Fehler gefunden.
%Vor%Der Fehler war, dass der Code den Dienststeuerungs-Manager nicht geöffnet hat. Ich habe auf MSDN gesucht und den Prozess gefunden, dem ich folgen musste. Ich habe auch den Berechtigungswert geändert, der möglicherweise auch einen Fehler verursacht hat.
Wir verwenden Runtime.getRuntime.exec()
und führen dann den Befehl
cmd / c net Start
um Dienste zu starten und
cmd / c net stoppen
um Dienste zu stoppen.
Natürlich müssen Sie die Servicenamen kennen (und in unserem Fall ist es DB2, hinter dem wir her sind). Aber das hat für uns funktioniert.
Tags und Links java windows-services winapi jna