Hallo Java-Gemeinde,
ich habe ein Jave-Programm geschrieben, das mir eine Datei einlist und weiter verarbeitet. Das Programm wird über die Konsole aufgerufen und läuft soweit einwandfrei.
Probleme ergeben sich, wenn ich das Programm per CronJob aufrufen möchte. Das Programm selbst wird gefunden und gestartet (Crontab funktioniert). Auch die Datei, die gelesen werden soll, wird gefunden. Hängen tut es anscheinend an dem Scanner-Objekt. Das findet zwar die Datei, aber kann sie nicht lesen. Es gibt keine Elemente.
Hat einer von Euch eine Idee, woran das liegen könnte? Und was man dagegen tun kann?
Meine Scanner-Routine:
Die Ausgabe beim Aufruf per CronJob wäre
Hat jemand eine Idee dazu? Das wäre super!
Vielen Dank und Grüße
Park
ich habe ein Jave-Programm geschrieben, das mir eine Datei einlist und weiter verarbeitet. Das Programm wird über die Konsole aufgerufen und läuft soweit einwandfrei.
Probleme ergeben sich, wenn ich das Programm per CronJob aufrufen möchte. Das Programm selbst wird gefunden und gestartet (Crontab funktioniert). Auch die Datei, die gelesen werden soll, wird gefunden. Hängen tut es anscheinend an dem Scanner-Objekt. Das findet zwar die Datei, aber kann sie nicht lesen. Es gibt keine Elemente.
Hat einer von Euch eine Idee, woran das liegen könnte? Und was man dagegen tun kann?
Meine Scanner-Routine:
Java:
private void readFile(String filename){
//File-Objekt erzeugen
File f= new File(filename);
//Wenn die Datei nicht existiert.
//(Eigentl. doppelt, weil unten in der Exception nochmal behandelt.)
if (!f.exists()){
System.out.println("Error: Datei '"+filename+"' nicht gefunden.");
System.out.println("Stoped.");
System.exit(-1);
}
//Scanner Objekt definieren
Scanner sc=null;
try {
// Datei in Scanner-Objekt einlesen
sc= new Scanner(f);
System.out.println("New Scanner angelegt");
} catch(FileNotFoundException e) {
System.out.println("Error: Datei wurde nicht gefunden!");
}
//Wenn es KEINE Zeilen zu lesen gibt
if (!sc.hasNextLine()){
System.out.println("Keine Zeilen zu lesen ...");
}
//Durchlaufe die Datei zeilenweise
while (sc.hasNextLine()){
String line = sc.nextLine();
System.out.println(line);
}
}
Die Ausgabe beim Aufruf per CronJob wäre
Code:
New Scanner angelegt
Keine Zeilen zu lesen ...
Hat jemand eine Idee dazu? Das wäre super!
Vielen Dank und Grüße
Park