Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4177 connectés 

 


Dernière réponse
Sujet : Aidez un débutant en Java SVP
gfive juste comme ça, essaie de mettre des guillements autour du nom de ton exécutable, des fois.. :D

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
gfive juste comme ça, essaie de mettre des guillements autour du nom de ton exécutable, des fois.. :D
HappyHarry c quand meme un vilain vilain parser qui veut pas comprendre ce que le debutant-en-java-qui-a-lu-la-1ere-page-du-bouquin-
de-c++-mais-qui-a-laissé-tomber-parce-qu'il-
fallait-reflechir veut faire  :lol:
HappyHarry meme en lisant le message du compilo il aurait pu comprendre  :??:
HappyHarry la j'hallucine  :ouch:
darklord

Kahyman a écrit a écrit :

 
 
Desole mais la regarde un peu les APIs... c'est le MINIMUM pour apprendre.  




 
c'est pour ca que j'ai donné l'explication minimale. Juste pour voir si il allait essayer de se débrouiller un peu  :sarcastic:  
 
voilà le résultat ...

Kahyman

Jef34 a écrit a écrit :

J'ai un peu de mal
 
public class toto
{
 public static void main (String[] args)
 {
 Runtime.exec(trayit.exe);  
 }
 
 
}
 

 
ca ne marche po. De plus comment indiquer un chemin absolue puisque que je ne peux pas mettre C:\Program Files sans qu'il y ait une erreur ??  




 
Desole mais la regarde un peu les APIs... c'est le MINIMUM pour apprendre.

Jef34 J'ai un peu de mal
 
public class toto
{
 public static void main (String[] args)
 {
 Runtime.exec(trayit.exe);  
 }
 
 
}
 

 
ca ne marche po. De plus comment indiquer un chemin absolue puisque que je ne peux pas mettre C:\Program Files sans qu'il y ait une erreur ??
Kahyman Tu peux lancer (avec Runtime.exec() comme l'a indique Darklord), mais pas toujours avoir une interaction avec les streams ouverts.
darklord Runtime.exec()
Jef34 Y a-t-il un moyen pour qu'un programme Java lance un exécutable.
 
Par exemple calc.exe (la calculatrice de Windows) ??
 
En somme les prog java peuvent-ils avoir une interaction avec les prog de Windows ?
Jef34 Ok, merci beaucoup à tous.. J'espère que vous avez laissé la notification car malheureusement pour vous, je risque d'avoir à nouveau besoin d'aide ... th  :jap:   :love:
gfive Parce que, quand t écris ça :  
 
System.out.println(a+b+c+"="+(a+c));
 
avec a et c qui sont des entiers (int) et b un char, ben Java additionne le tout (un char et un int, au final, hein, ben c la même chose!)  
donc, tu a brillament démontré que b casté en char vaut 42 en int! :D:D
 
L'opérateur "+" ne fait de la concaténation de chaînes UNIQUEMENT s'i ly a une chaîne d'un des deux côtés de l'opérateur...Donc, avec des "" entre chaque, ça marche! ;)
Mais bon, cet opérateur est à utiliser avec précaution : au delà de 1 occurence dans une chaîne, la JRE instancie un StirngBuffer(...donc bon, t'as plutôt intérêt à faire ça :  
 
StringBuffer sb= new StringBuffer();
sb.append(a);
sb.append(b);
sb.append(c);
sb.append("=" );
if (b=='+') {
sb.append(a+c);
}
if (b=='-') {
sb.append(a-c);
}
if (b=='/') {
sb.append(a/c);
}
if (b='*') {
sb.append(a*c);
}
System.out.println(sb.toString());
 
 
voilà voilà..
jupiler si tu avais mis '=' à la place de "=" tu n'aurais obtenu qu'un entier à l'affichage
jupiler ben il donne priorité aux opérations entre variables de meme type donc il commence par additionner les entiers et les char (qui sont des entiers), puis il additionne un entier et une chaine de caractère ("=" ) et là seulement il convertit la somme d'entier en caractères.
Jef34 J'ai un probleme avec un programme en Java..
 
 
import java.io.*;
       
public class Calcul
{
 public static void main (String[] args)
 {
  //Initialise les variables a,c avec les chiffres et b avec le caractère qui peut être +,-,*,/
  int a=Integer.parseInt(args[0]);
  char b=args[1].charAt(0); //Besoin d'explication sur charAt(0)
  int c=Integer.parseInt(args[2]);
 
  // Evite la division par zéro en testant b (division) et c (zéro)
   
  if ((b=='/')&&(c==0))  
  {
   System.out.println("Division par Zéro" );
   System.exit(0);
  }
 
   
 if (b=='+') {System.out.println(a +b +c +"=" +(a+c));}
  if (b=='-') {System.out.println(a +b +c +"=" +(a-c));}
  if (b=='*') {System.out.println(a +b +c +"=" +(a*c));}
  if (b=='/') {System.out.println(a +b +c +"=" +(a/c));}
 
   
 
 }  
}

 
Tout fonctionne, mais je me demande pourquoi j'ai été obligé remplacé la partie soulignée par
 
 if (b=='+') {System.out.println(a +"" +b +"" +c +"=" +(a+c));}
  if (b=='-') {System.out.println(a +"" +b +"" +c +"=" +(a-c));}
  if (b=='*') {System.out.println(a +"" +b +"" +c +"=" +(a*c));}
  if (b=='/') {System.out.println(a +"" +b +"" +c +"=" +(a/c));}

 
Pour avoir 1+1=2 par exemple. Sans ce remplacement j'avais  45=2 au lieu de 1+1=2.
 
Pour vous aider si je mets en argument 0 + 0, j'ai  comme réponse
43=0
 
Je ne comprends pas le calcul qui est effectué à l'exécution qui me donne ces chiffres 43, 45 ou autres...

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)