Code retour d'un programme java et script bash
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 :
Code:
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);
}
} |
Dans un script shell, j'essaie de récupérer la valeur retournée par le programme java. Voici le code :
Code:
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 : " $? |
et maintenant le moment intéressant, voici le résultat de l'exécution :
Code:
1 2 3 4
|
rr@rr-desktop:~/test$ ./test.sh 1 0.2
prog java : 300
script bash : 44 |
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 ?
Merci d'avance.