Mon appli génère des graphiques et pour cela elle va lire dans des fichiers texte des valeurs permettant la génération. Le chemin d'accès est dynamique car il y a un fichier par jour.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
filePath = "/soleil/logs/stats/"+ yyyy + "/" + mm + "/" + dd + "/" + yyyy + "-" + mm + "-" + dd + "_Resumes.txt";	//Chemin d'acces au fichier contenant les valeurs
Jusque la aucun problème n'est à déplorer le chemin d'accès est dans tous les cas juste.

Le problème se présente lorsque je veux lire le fichier avec un scanner. Lorsque je lance manuellement l'appli avec la commande java -cp /usr/local/rrdtool Graph... (ou ... est remplacé par 2Sem, 1Mois, 3Mois ou 1An) il n'y a aucun problème.
Mais ayant automatisé l'exécution des applis avec crontab, il semblerait que le scanner permettant de lire les fichiers ligne par ligne bug et ne veuille pas passer à la ligne suivante.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
try {
	Scanner scanner = new Scanner(new File(filePath));
	System.out.println("SCANNER " + scanner.hasNext());  //J'obtiens false ici
	try {
		while (scanner.hasNextLine()) {
			System.out.println("WHILE");
			String line = scanner.nextLine();
			for (int j = 0; j < nbLignes; j++) {	//Renseignement des differents tableaux
				if (line.contains(tabDepots[j]) && !line.contains("carnica")) {	//Si la ligne contient la case du tableau
					line = line.replace(" ", "");
					line = line.replace("|", " ");
					String tabline[] = line.split(" ");
					tabVal[j][JourJ] = Double.parseDouble(tabline[4]);
					tabFic[j][JourJ] = Integer.parseInt(tabline[7]);
					tabScaleFiles[j][JourJ] = tabFic[j][JourJ] + (10 - (tabFic[j][JourJ] % 10)); //On prend comme echelle un nombre superieur
					tabScaleData[j][JourJ] = (int)tabVal[j][JourJ] + (10 - ((int)tabVal[j][JourJ] % 10)); //On prend comme echelle un nombre superieur
					System.out.println("**********");
					System.out.println("TABVAL-" + tabVal[j][JourJ]);
					System.out.println("TABFIC-" + tabFic[j][JourJ]);
				}
			}
		}
	} finally {
		// On s'assure de fermer proprement le fichier
		System.out.println("CLOSE SCANNER");
		scanner.close();
	}
} catch (FileNotFoundException e) {
	//Affichage d'un message d'erreur spécifiant que le fichier n'a pas été trouvé
	System.err.println("(" + filePath + ") Fichier non trouvé initialisation des variables a 0");
 
	for (int j = 0; j < nbLignes; j++) {	//Mise à zéro des différents tableaux
		tabVal[j][JourJ] = 0;
		tabFic[j][JourJ] = 0;
		tabScaleFiles[j][JourJ] = 0;
		tabScaleData[j][JourJ] = 0;
		System.out.println("TABVAL-" + tabVal[j][JourJ]);
		System.out.println("TABFIC-" + tabFic[j][JourJ]);
	}
}
Serait-ce du à l'environnement d'exécution du crontab? Etant donné que c'est le seul cas ou les applis ne fonctionnent pas.