Linux : compiler du Java en ligne de commande

Bonjour,
je viens d'installer manuellement un JRE avec une version plus élevée. Cependend, lorsque je compile en mode console, je m'aperçois que le programme est compilé evec l'autre version du JRE.

Comment faire pour que la console compile le programme avec la bonne version ?

Merci d'avance.
Configuration: Linux
Mozilla 1.8.1.19

11 réponses

  1. Ca y est ! J'ai enfin réussi à compiler !

    pour compiler :

    /usr/java/jdk1.6.0_12/bin/javac test.java

    pour lire :

    /usr/java/jdk1.6.0_12/bin/java test

    Merci beaucoup pour ta patience et tes réponses !
    1. Contributeur
      Je ne parle pas du JRE mais du JDK.
      Le JDK tu l'installes dans le dossier que tu veux. Si tu l'installes dans C:\Java.
      Il faudra que tu compiles avec : C:\Java\bin\javac fichier (ou du genre).
      Ou alors mettre C:\Java\bin dans le Path pour pouvoir juste utiliser javac. Attention à la priorité avec l'autre javac.
      Cdlt
      1. J'ai déjà installé le JRE, et ça marche sous éclipse. Cela ne vient donc pas du JRE ?

        Et si il faut installer le JDK, dans quel dossier l'installer ?
        1. J'ai modifié cette erreur, mais j'ai toujours ce message d'erreur :

          $ javac test.java
          ----------
          1. ERROR in test.java (at line 1)
          import java.util.Scanner;
          ^^^^^^^^^^^^^^^^^
          The import java.util.Scanner cannot be resolved
          ----------
          2. ERROR in test.java (at line 6)
          Scanner sc = new Scanner(System.in);
          ^^^^^^^
          Scanner cannot be resolved to a type
          ----------
          3. ERROR in test.java (at line 6)
          Scanner sc = new Scanner(System.in);
          ^^^^^^^
          Scanner cannot be resolved to a type
          ----------
          1. Contributeur
            Désolé, j'ai mal compris ce que tu voulais.
            Si ton code ne compile pas, et vu le message d'erreur que t'as obtenu, c'est que tu n'as pas inclus en début de programme :
            import java.util.Scanner;


            Ca devrait mieux compiler ;-).
            1. voila donc le résultat de ta commande :

              $ javac -version
              Eclipse Java Compiler v_677_R32x, 3.2.1 release, Copyright IBM Corp 2000, 2006. All rights reserved.

              comment faire donc pour compiler correctement ?

              --EDIT--
              J'ai essayé de lire un fichier compilé par éclipse, mais j'ai un message d'erreur :

              $ java -version:1.4 test
              gij: unrecognized option -- `-version:1.4'
              Try `gij --help' for more information.
              1. La version du JRE qui doit exécuter mon programme est la dernière version : la 1.6 (. Je compile en ce moment avec la 1.4.)

                Par contre, je ne connais pas la version du JDK. Comment savoir ?
                1. Contributeur
                  Par contre, je ne connais pas la version du JDK
                  javac -version

                  Lorsque tu lances, ton programme, utilise java -version:1.4
                  Cdlt
              2. Contributeur
                L'option 1.6 n'est pas correct. Ca s'arrête à 1.5, mais ça marche avec la 1.6 quand même.

                Quelle est la version de ton JRE qui doit exécuter ton programme ?
                Quelle est la version de ton JDK avec laquelle tu compiles ?
                1. Merci, mais lorsque je fais "javac test.java -source 1.6"
                  j'ai l'impression que le JRE n'est toujours pas à la bonne version :
                  le code suivant :
                  class Sdz1 {
                  public static void main(String[] args) {
                  //Notre objet Scanner
                  Scanner sc = new Scanner(System.in);

                  //initialisation des variables
                  double c, f=0;
                  int i,j=0;
                  char reponse=' ';

                  System.out.println(" ------------------------------------------------------------------------");
                  System.out.println("| CONVERSION DEGRES CELSIUS ET DEGRES FARENHEIT |");
                  System.out.println(" ------------------------------------------------------------------------");

                  do{//tant que reponse = O//boucle principale

                  do{//tant que l'imprimante n'est pas prête//boucle de test pour savoir si l'utilisateur est prêt

                  do {// tant que valeur impossible rentrée

                  //saisie des valeurs
                  System.out.println("A partir de :");//affichage des directives et récupération des données
                  c = sc.nextDouble();

                  System.out.println("jusqu' à:");
                  i = sc.nextInt();

                  System.out.println("Par pas de :");
                  j = sc.nextInt();

                  if (c > i || j > i || j == 0)
                  System.out.println("Traitement impossible");

                  }while(c > i || j > i || j == 0);

                  do {//tant que la reponse n'est pas O ou N

                  System.out.println("Assurez-vous que l'imprimante est prête");
                  System.out.println("Si vous êtes prêt, tapez O, sinon tapez N");
                  //sc.reset();
                  reponse = sc.next().charAt(0);

                  }while (reponse != 'O' && reponse != 'N');

                  }while (reponse == 'N');

                  // Traitement des valeurs
                  System.out.println("TABLE DE CONVERSION CELSIUS / FARENHEIT");
                  System.out.println("---------------------------------------------");
                  System.out.println(" Celsius | Farenheit ");
                  System.out.println("---------------------------------------------");

                  do{//tant que l'affichage n'est pas fini, on boucle les données et les calculs

                  f = ((9.0/5.0) * c) + 32.0;
                  if (c < 10)//si le Celsius n'a qu'un chiffre, on affiche un certain nombre d'espaces
                  System.out.println(" "+c+" | "+arrondi(f,1));

                  else
                  {
                  if(c < 100)//S'il y a un chiffre en plus, on enlève un espace blanc...
                  System.out.println(" "+c+" | "+arrondi(f,1));
                  else
                  System.out.println(" "+c+" | "+arrondi(f,1));
                  }

                  c = c + j;//On incrémente le degré Celsius avec le pas

                  }while (c <= i);

                  do{

                  System.out.println("Souhaitez-vous éditer une autre table ?(O/N)");
                  reponse = sc.next().charAt(0);

                  }while(reponse != 'O' && reponse != 'N');

                  }while(reponse == 'O');

                  System.out.println("Au revoir !");

                  //Fin de programme
                  }

                  public static double arrondi(double A, int B) {
                  return (double) ( (int) (A * Math.pow(10, B) + .5)) / Math.pow(10, B);
                  }

                  }


                  n'est pas compilé correctement; en effet, j'ai ce message :

                  $ javac test.java -source 1.6
                  ----------
                  1. ERROR in test.java (at line 4)
                  Scanner sc = new Scanner(System.in);
                  ^^^^^^^
                  Scanner cannot be resolved to a type
                  ----------
                  2. ERROR in test.java (at line 4)
                  Scanner sc = new Scanner(System.in);
                  ^^^^^^^
                  Scanner cannot be resolved to a type
                  ----------
                  2 problems (2 errors)


                  je crois que c'est parce que mon JRE ou mon JDK n'est pas à la bonne version.

                  Existe t'il un fichier a modifier ?

                  Comment faire pour que je puisse compiler quand même ?

                  Merci d'avance.
                  1. ton programme commtien des faute grammaticale et algebric
                    si tu arrive a avoire des message error c'est que tu arrive a compil ton programme mais probleme c'est qu'il y a de faute
                2. Contributeur
                  Salut,
                  Avec javac - source release, tu peux choisir ta version de java en remplaçant release par celle que tu veux.
                  Mais, il te faut la JDK pour javac et non JRE.
                  Cdlt