Compilation Java sous Unix

Compilation Java sous Unix - Java - Programmation

Marsh Posté le 20-04-2011 à 09:44:25    

Bonjour,
 
Voilà j'ai trois classes : Main.java, Port.java, VL.java
Lorsque je fais :

Code :
  1. javac VL.java
  2. javac Port.java


Tout ce passe bien !
Mais lorsque je fais :

Code :
  1. javac Main.java


 
J'obtiens les erreurs suivantes :

Code :
  1. Main.java: 743: cannot resolve symbol
  2. Symbol : Class Port
  3. Location : Class Main
  4.                       Port prt = new Port();


 
Auriez-vous une idée?
 
Merci d'avance


---------------

Reply

Marsh Posté le 20-04-2011 à 09:44:25   

Reply

Marsh Posté le 20-04-2011 à 10:47:26    

kelkoko a écrit :

Bonjour,
 
Voilà j'ai trois classes : Main.java, Port.java, VL.java
Lorsque je fais :

Code :
  1. javac VL.java
  2. javac Port.java


Tout ce passe bien !
Mais lorsque je fais :

Code :
  1. javac Main.java


 
J'obtiens les erreurs suivantes :

Code :
  1. Main.java: 743: cannot resolve symbol
  2. Symbol : Class Port
  3. Location : Class Main
  4.                       Port prt = new Port();


 
Auriez-vous une idée?
 
Merci d'avance


 
Un peu difficile de donner une réponse sérieuse quand on ne sait pas ce que tu as mis dans tes classes VL et Port, mais je dirais que c'est un problème de classpath, et pas un problème spécifique Unix. Assures toi que les classes VL soient bien compilées dans les bons répertoires (si tu utilises des packages) et que le compilateur trouve les bons chemins..

Reply

Marsh Posté le 20-04-2011 à 10:51:28    

leonhard a écrit :


Un peu difficile de donner une réponse sérieuse quand on ne sait pas ce que tu as mis dans tes classes VL et Port, mais je dirais que c'est un problème de classpath, et pas un problème spécifique Unix. Assures toi que les classes VL soient bien compilées dans les bons répertoires (si tu utilises des packages) et que le compilateur trouve les bons chemins..


 
 
En faite j'utilise pas de package, de plus, les classes sont dans le même répertoire et sont compilé dans celui-ci !
 
Donc je ne sais pas.
 
Faut-il ajouter "import VL" et "import Port" dans la classe Main?


---------------

Reply

Marsh Posté le 20-04-2011 à 11:04:23    

kelkoko a écrit :


 
 
En faite j'utilise pas de package, de plus, les classes sont dans le même répertoire et sont compilé dans celui-ci !
 
Donc je ne sais pas.
 
Faut-il ajouter "import VL" et "import Port" dans la classe Main?


 
Que se passe-t-il si tu tapes
 

Code :
  1. javac -cp . Main.java

Reply

Marsh Posté le 20-04-2011 à 11:10:18    

leonhard a écrit :


 
Que se passe-t-il si tu tapes
 

Code :
  1. javac -cp . Main.java



 
 

Code :
  1. Je tape ça : javac -c Main.java
  2. Javac : Invalid flag : -cp


---------------

Reply

Marsh Posté le 20-04-2011 à 12:35:07    

kelkoko a écrit :


 
 

Code :
  1. Je tape ça : javac -c Main.java
  2. Javac : Invalid flag : -cp



 
 
Euh y'a une incohérence entre tes deux lignes ! (dans la commande tu dis donner "-c" et dans le message d'erreur il trouve "-cp" ). La commande c'est

Code :
  1. javac -cp . Main.java


 
Le point après le "-cp" n'est pas seulement décoratif, mais il signifie "répertoire courant" !. Essayes de taper très exactement cette commande !
 
Quel compilateur utilises tu ? quelle version ? T'as essayé de taper "javac -help" ?`T'as pas trouvé des informations sur le classpath dans l'aide ? T'as consulté la page de doc du compilateur ? (par exemple http://download.oracle.com/javase/ [...] javac.html si tu utilises le compilateur de Sun^H^H^HOracle) ? Manifestement il faut que tu nous expliques en détail ton environnement, parce que là je ne vois plus trop...

Reply

Marsh Posté le 20-04-2011 à 14:25:36    

leonhard a écrit :


Euh y'a une incohérence entre tes deux lignes ! (dans la commande tu dis donner "-c" et dans le message d'erreur il trouve "-cp" ). La commande c'est

Code :
  1. javac -cp . Main.java


 
Le point après le "-cp" n'est pas seulement décoratif, mais il signifie "répertoire courant" !. Essayes de taper très exactement cette commande !
 
Quel compilateur utilises tu ? quelle version ? T'as essayé de taper "javac -help" ?`T'as pas trouvé des informations sur le classpath dans l'aide ? T'as consulté la page de doc du compilateur ? (par exemple http://download.oracle.com/javase/ [...] javac.html si tu utilises le compilateur de Sun^H^H^HOracle) ? Manifestement il faut que tu nous expliques en détail ton environnement, parce que là je ne vois plus trop...


 
En faite c'est une faute de frappe, j'ai bien tapé : javac -cp . Main.java !
Et ça m'affiche :

Code :
  1. Javac : Invalid flag : -cp


 
Après je compile mes classes sur une machine Unix et la version de Java est 1.4.1 (pas vraiment récente :p mais aucun moyen de la changer !).
 
D'après la commande "javac -help", l'option "-cp" n'existe pas.


---------------

Reply

Marsh Posté le 20-04-2011 à 14:36:44    

kelkoko a écrit :


 
En faite c'est une faute de frappe, j'ai bien tapé : javac -cp . Main.java !
Et ça m'affiche :

Code :
  1. Javac : Invalid flag : -cp


 
Après je compile mes classes sur une machine Unix et la version de Java est 1.4.1 (pas vraiment récente :p mais aucun moyen de la changer !).
 
D'après la commande "javac -help", l'option "-cp" n'existe pas.


 
 
Et elle te propose quoi l'aide pour fixer le classpath ? Je n'ai plus travaillé sous 1.4.1 depuis très très longtemps mais peut-être que remplacer le "-cp" par "-classpath" pourrait faire l'affaire ? Sinon c'est quel compilateur que tu utilises ? celui de Sun ? Regarde dans l'aide, il y a surement une ou plusieurs commandes qui parlent du classpath. Au pire tu dois fixer la variable d'environnement "CLASSPATH" mais comme je ne sais pas sous quel shell unix tu travailles, je te laisses chercher cela toi-même.

Message cité 1 fois
Message édité par leonhard le 20-04-2011 à 14:37:24
Reply

Marsh Posté le 20-04-2011 à 14:42:04    

leonhard a écrit :


Et elle te propose quoi l'aide pour fixer le classpath ? Je n'ai plus travaillé sous 1.4.1 depuis très très longtemps mais peut-être que remplacer le "-cp" par "-classpath" pourrait faire l'affaire ? Sinon c'est quel compilateur que tu utilises ? celui de Sun ? Regarde dans l'aide, il y a surement une ou plusieurs commandes qui parlent du classpath. Au pire tu dois fixer la variable d'environnement "CLASSPATH" mais comme je ne sais pas sous quel shell unix tu travailles, je te laisses chercher cela toi-même.


 
 
Je te remercie leonhard !
En effet, il fallait spécifier le classpath comme suit (pour aider) :
 

Code :
  1. javac -classpath . Main.java


 
Et ça fonctionne nickel !
 
Par contre, il n'apprécie pas les doubles, or j'avais essayer les float mais ça ne fonctionnais pas comme je voulais (pas assez grand!) !
Aurais-tu une idée? long float ou je ne sais pas?


---------------

Reply

Marsh Posté le 20-04-2011 à 15:00:59    

kelkoko a écrit :


 
[...]
 
Par contre, il n'apprécie pas les doubles, or j'avais essayer les float mais ça ne fonctionnais pas comme je voulais (pas assez grand!) !
Aurais-tu une idée? long float ou je ne sais pas?


 
 
Je ne comprends pas ta question. Les "float" sont codés sur 32 bits et les "double" sont codés sur 64 bits (norme IEEE 754) donc je ne vois pas du tout ce que tu appelles "long float". Regardes peut-être là : http://people.uncw.edu/tompkinsj/1 [...] Reals.htm. Qu'est-ce que tu reproches aux doubles ?
 
Après si tu as besoin d'encore plus précis, en standard y'a que la classe "BigDecimal" mais la tu vas faire exploser la performance de ton programme.  

Reply

Marsh Posté le 20-04-2011 à 15:00:59   

Reply

Marsh Posté le 20-04-2011 à 17:20:14    

Nan c'est bon j'ai laissé en float car le double ne fonctionne pas en version 1.4.1
 
Je clos le sujet encore merci leonhard


---------------

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed