Starten / Stoppen von Diensten mit JNA

8

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.

    
GEverding 29.07.2011, 15:49
quelle

2 Antworten

1

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.

    
gavioto 17.11.2016 16:33
quelle
0

Wir verwenden Runtime.getRuntime.exec() und führen dann den Befehl

aus
  

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.

    
Chris Aldrich 29.07.2011 16:28
quelle

Tags und Links