Hallo zusammen,
ich möchte meine Java Application als Windows Dienst laufen lassen, hierzu verwende ich Procrun. Die Installation funktioniert soweit ohne Probelme.
Die .bat Datei sieht wie folgt aus:
Service //IS//Service_Test
--DisplayName="Service_Test"
--Install="D:\Daten\commons-daemon\amd64\Service.exe"
--Jvm="C:\Program Files\Java\jre1.8.0_171\bin\server\jvm.dll"
--StartMode=jvm
--StopMode=jvm
--Classpath="D:\Daten\Service_Test.jar"
--StartClass=Service/Service_service
--StartParams=start
--StopClass=Service/Service_service
--StopParams=stop
--Startup=auto
Ich kann den Dienst ebenfalls starten wenn ich folgenden Code verwende und die Klasse Service_Mail_Alert_Class auskommentiert ist. Alle 5 Sekunden schreibt mir das Programm in die logs.txt dann die Zeit.
Code(Java):
Wenn ich die Klasse Service_Mail_Alert_Class jedoch wieder reinkommentiere bekomme ich ein Windows Fehler beim starten des Dienstes. Im Windows Ereignisanzeige steht dann die Nachricht:
Der Dienst "Service_service" wurde mit dem folgenden dienstspezifischen Fehler beendet: Unzulässige Funktion.
Die Klasse Service_Mail_Alert_Class sendet ein Email, oder in unserem Fa
Wenn ich die Application im Eclipse zum testen laufen lasse dann schreibt er mir ohne Probleme eine Email, aber als Dienst bekomme ich ein Fehler!
Übersehe ich hier etwas? Jemand eine Idee was man hier machen kann?
ich möchte meine Java Application als Windows Dienst laufen lassen, hierzu verwende ich Procrun. Die Installation funktioniert soweit ohne Probelme.
Die .bat Datei sieht wie folgt aus:
Service //IS//Service_Test
--DisplayName="Service_Test"
--Install="D:\Daten\commons-daemon\amd64\Service.exe"
--Jvm="C:\Program Files\Java\jre1.8.0_171\bin\server\jvm.dll"
--StartMode=jvm
--StopMode=jvm
--Classpath="D:\Daten\Service_Test.jar"
--StartClass=Service/Service_service
--StartParams=start
--StopClass=Service/Service_service
--StopParams=stop
--Startup=auto
Ich kann den Dienst ebenfalls starten wenn ich folgenden Code verwende und die Klasse Service_Mail_Alert_Class auskommentiert ist. Alle 5 Sekunden schreibt mir das Programm in die logs.txt dann die Zeit.
Code(Java):
Java:
public class Service_service {
private static final String IDENT = "Service";
//args params start/stop
private static boolean loop_stop = false;
public static void main(String[] args) {
if("start".equals(args[0])){
start(args);
}else{
stop(args);
}
}
private static void start(String[] args){
try {
File file = new File("D:/Daten/logs.txt");
FileWriter writer = new FileWriter(file, true);
//Service_Mail_Alert_Class mailAlert = new Service_Mail_Alert_Class("muster.mann@test.com");
while(!loop_stop){
String time_s = new SimpleDateFormat("HHmm").format(new Date());
writer.write(time_s);
writer.write(System.getProperty( "line.separator" ));
writer.flush();
//mailAlert.sendMail("Nachricht vom Service");
Thread.sleep(5000);
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static void stop(String[] args){
loop_stop = true;
}
}
Wenn ich die Klasse Service_Mail_Alert_Class jedoch wieder reinkommentiere bekomme ich ein Windows Fehler beim starten des Dienstes. Im Windows Ereignisanzeige steht dann die Nachricht:
Der Dienst "Service_service" wurde mit dem folgenden dienstspezifischen Fehler beendet: Unzulässige Funktion.
Die Klasse Service_Mail_Alert_Class sendet ein Email, oder in unserem Fa
Wenn ich die Application im Eclipse zum testen laufen lasse dann schreibt er mir ohne Probleme eine Email, aber als Dienst bekomme ich ein Fehler!
Übersehe ich hier etwas? Jemand eine Idee was man hier machen kann?