Eine Batch-Datei als Dienst ausführen?

Ohne Hilfsmittel geht das meines Wissens nicht. Aber warum will man das überhaupt? In diesem Fall möchte ich gerne den Minecraft-Server „Bukkit“ als Dienst auf einem anderen Rechner ausführen, um ihn dort automatisch mit dem System starten zu lassen und mit net start/stop einfach steuern zu können.

Im Netz werden einige Tools als „Service-Wrapper“ vorgeschlagen, aber da ich selbst mal swrap programmiert habe, nutze ich dieses Tool einfach mal (fürs erste). Leider fiel mir dabei auch gleich ein Bug auf, der über die Jahre nicht entdeckt wurde: Wenn die Registry den Basisschlüssel der Anwendung (unter HKEY_LOCAL_MACHINE\Software) nicht enthält, wird immer mit einem Initialisierungsfehler (SWERR_1) abgebrochen. Auf der anderen Seite ist es aber schön zu sehen, dass das Tool auch noch unter „Win8 64-bit“ out-of-the-box läuft.

Nach Ergänzung des Schlüssels „HKEY_LOCAL_MACHINE\Software\Wow6432Node\netShore\Services“ war der Rest einfach:

swrap /c "BUKKIT-Server" "cmd /c ""c:\bukkit server\run.bat"""

Dazu noch die „run.bat“ erweitern:

c:
cd "c:\bukkit server"
"c:\program files\java\jre6\bin\java.exe" ... -jar "c:\bukkit server\craftbukkit.jar" ...
pause

Und schon taucht „BUKKIT-Server“ im Dienstemanager auf und kann gestartet werden. Leider funktioniert hier das Beenden noch nicht, da „swrap“ den gestarteten Prozess (hier: cmd) beendet und nicht den durch die BAT-Datei gestarteten Java-Prozess. Für mein konkretes Problem werde ich über eine gezielte Implementierung eines Dienstes nachdenken. Das Grund-„Problem“ (Batch-Datei als Dienst ausführen) ist aber prinzipiell lösbar.