Bonjour, ça fait 2h00 que je STFW ou j'ai trouvé un cours à ce sujet sur ce site que j'ai essayé de mettre en pratique, je teste un peu tout mais je n'y arrive pas.
j'ai un programme java P1 qui en appelle un autre P2 qui effectue un calcul pour P1, P2 fonctionne bien je l'ai testé à part il donne le résultat du calcul sur la sortie standard. Par contre je n'arrive pas à récupérer cette sortie de P2 dans P1, le BufferedReader créé pour ça a pour valeur "null".
Si quelqu'un a une solution pour moi je suis preneur wink.
Le chemin vers P2 est correct, j'ai essayé en mettant un faux chemin et je n'ai carrément pas de valeur de retour.
Voilà le code de P1:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 package facturefct; import java.io.BufferedReader; import java.io.InputStreamReader; import java.lang.*; /** * * @author diodio */ public class Main { /** * @param args the command line arguments */ public static float calcul(int unite){ float total = 0.0f; String reponse = ""; String argument = Integer.toString(unite); Runtime runtime = Runtime.getRuntime(); try{ Process facture = runtime.exec(new String[] {"/home/diodio/cnam/nfp135-accueuil_et_reconversion1/" + "04-tp04_tp05/tp5ex1/facture/dist/facture.jar", "100"}); BufferedReader reader = new BufferedReader(new InputStreamReader(facture.getInputStream())); reponse = reader.readLine(); System.out.println("reponse = " + reponse); total = Float.valueOf(reponse); reader.close(); }catch(Exception exc){} return(total); } public static void main(String[] args) { int nbFacture = 0, nbUnite = 0; nbFacture = Tools.readInt("Entrez le nombre de factures à traiter: "); float tabMontant[] = new float[nbFacture]; int tabUnite[] = new int[nbFacture]; for(int i = 0; i < nbFacture; i++){ nbUnite = Tools.readInt("Entrez le nombre d'unitées " + "(valeur négative pour nombre aléatoire): "); if (nbUnite < 0) nbUnite = (int)(1000 * Math.random()); tabUnite[i] = nbUnite; tabMontant[i] = calcul(nbUnite); } } }
Merci de votre aide.
Partager