Linux : compiler du Java en ligne de commande
Fermé
little_programmeur
Messages postés
54
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
27 juin 2019
-
17 mars 2009 à 20:10
thierco1 - 9 nov. 2010 à 20:25
thierco1 - 9 nov. 2010 à 20:25
A voir également:
- Exécuter un programme java en ligne de commande linux
- Invite de commande - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Partage de photos en ligne - Guide
- Site de vente en ligne particulier - Guide
11 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
18 mars 2009 à 19:06
18 mars 2009 à 19:06
Apparemment ton javac ne reconnaît pas la classe Scanner qui est une nouveauté de la version 1.5.
Il faut donc que tu installes la dernière version de la JDK (ou au minimum 1.5) sur ton ordi en te rendant sur le site officiel de Sun :
https://www.oracle.com/java/technologies/javase-downloads.html (JDK update 12).
Il faut donc que tu installes la dernière version de la JDK (ou au minimum 1.5) sur ton ordi en te rendant sur le site officiel de Sun :
https://www.oracle.com/java/technologies/javase-downloads.html (JDK update 12).
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
18 mars 2009 à 20:19
18 mars 2009 à 20:19
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
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
17 mars 2009 à 21:47
17 mars 2009 à 21:47
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
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
little_programmeur
Messages postés
54
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
27 juin 2019
4
18 mars 2009 à 17:13
18 mars 2009 à 17:13
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
18 mars 2009 à 17:48
18 mars 2009 à 17:48
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 ?
Quelle est la version de ton JRE qui doit exécuter ton programme ?
Quelle est la version de ton JDK avec laquelle tu compiles ?
little_programmeur
Messages postés
54
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
27 juin 2019
4
18 mars 2009 à 18:07
18 mars 2009 à 18:07
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 ?
Par contre, je ne connais pas la version du JDK. Comment savoir ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
18 mars 2009 à 18:24
18 mars 2009 à 18:24
Par contre, je ne connais pas la version du JDK
javac -version
Lorsque tu lances, ton programme, utilise java -version:1.4
Cdlt
javac -version
Lorsque tu lances, ton programme, utilise java -version:1.4
Cdlt
little_programmeur
Messages postés
54
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
27 juin 2019
4
18 mars 2009 à 18:27
18 mars 2009 à 18:27
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.
$ 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.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
18 mars 2009 à 18:36
18 mars 2009 à 18:36
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 :
Ca devrait mieux compiler ;-).
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 ;-).
little_programmeur
Messages postés
54
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
27 juin 2019
4
18 mars 2009 à 18:44
18 mars 2009 à 18:44
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
----------
$ 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
----------
little_programmeur
Messages postés
54
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
27 juin 2019
4
18 mars 2009 à 20:00
18 mars 2009 à 20:00
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 ?
Et si il faut installer le JDK, dans quel dossier l'installer ?
little_programmeur
Messages postés
54
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
27 juin 2019
4
19 mars 2009 à 11:35
19 mars 2009 à 11:35
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 !
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 !