Bonjour,
la question a déjà été posée maintes fois et les personnes ont trouvé une réponse mais cela ne fonctionne pas chez moi. Voici le code d'un programme java qui est censé faire certaines opérations (ce n'est pas important) et retourner une valeur entière. J'affiche cette valeur avant de la retourner :
Dans un script shell, j'essaie de récupérer la valeur retournée par le programme java. Voici le code :
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
42
43 import java.io.File; import java.io.IOException; import java.util.Scanner; class TrouveMini { public static void main(String args[]) throws java.io.IOException { int arg1=Integer.parseInt(args[0]); double seuil=Double.parseDouble(args[1]); for(int i=2;i<args.length;i++) { File fichier = new File(args[i]); Scanner lecteur = new Scanner(fichier); String str; if(arg1==1) str=lecteur.next(); else { str=lecteur.next(); str=lecteur.next(); str=lecteur.next(); } double pourcent=Double.parseDouble(str); if(pourcent<seuil) { String substr=args[i].substring(8,12); substr=substr.replace("_",""); //System.out.println(substr); int retour=Integer.parseInt(substr); System.out.println("prog java : " + retour); System.exit(retour); } lecteur.close(); } System.exit(0); } }
et maintenant le moment intéressant, voici le résultat de l'exécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #!/bin/bash javac TrouveMini.java arguments="" for (( i=100;i<=1500;i+=100 )) do arguments=$arguments' VDPimage'$i'_128_128_0000000000.csv ' done java TrouveMini $1 $2 $arguments echo "script bash : " $?
Comme vous pouvez le voir, dans le programme Java, la valeur retournée est 300 mais la valeur récupérée par le script bash est 44. Est ce que vous voyez une erreur ou y a-t-il une subtilité que je ne connais pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 rr@rr-desktop:~/test$ ./test.sh 1 0.2 prog java : 300 script bash : 44
Merci d'avance.
Partager