Probleme compilation package sous linux

Probleme compilation package sous linux - Java - Programmation

Marsh Posté le 08-01-2005 à 23:47:38    

Salut !
Voila j'ai un probléme en java avec les packages (je suis débutant)
Voici quelques infos utile :
Je suis sous linux mandrake 10.1 et utilise emacs :-)
Le jdk que j'utilise est la version 1.4.2.06  (j2sdk-1_4_2_06-linux-i586.rpm)
 
Voila dans le dossier nombre contient mon package nombre
 
file:/home/nicolas/testjava/nombre/Nombre.java
file:/home/nicolas/testjava/nombre/entier.java
 
A la racine du dossier de mon projet il ya  :
 
file:/home/nicolas/test/testnombre.java
 
Bon voici le code, c'est sur ca sert a rien mais je veut juste trouver l'erreur pour la corriger sur un gros projet ( merci d'avance )
=========================
package nombre;
 
public class Nombre{
 
       public Nombre(){
           System.out.println("Constructeur nombre" );    
       }
 
}
================================
package nombre;
 
public class entier{
 
Nombre[][] tab;
 
       public entier(){
           System.out.println("Constructeur nombre" );    
       }
 
 
}
===================================
import nombre.*;
 
public class testnombre{
 
 public static void main(String args[]){
 System.out.println("Salut" );
 }
 
 
}
======================================
Voici l'erreur obtenue  
 
[nicolas@localhost nombre]$ javac Entier.java
Entier.java:5: cannot find symbol
symbol  : class Nombre
location: class nombre.Entier
Nombre[][] tab;
^
1 error
 
 
Voila merci de maider à trouver l'erreur .........
Je pense que ca vient de la declaration des package et (classpath) sous linux car cela marche avec netbeans (mais bon je suis pas sur).


Message édité par tich62 le 09-01-2005 à 19:17:59
Reply

Marsh Posté le 08-01-2005 à 23:47:38   

Reply

Marsh Posté le 09-01-2005 à 17:58:37    

T'as du merdouiller dans ton copier/coller : y a 2 classes nombre, pas de classe reel ni de classe Entier.
 
Bref.
 
Ton problême est surement un problême de classpath. Il faut que tu fixe la variable systême à "/home/nicolas/testjava/" (la racine des répertoires contenant tes classes)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 09-01-2005 à 18:05:25    

Voila j'ai modifier l'erreur . Le vais tester le classpath  
C'est bien comme cela qu'il faut faire :  
export CLASSPATH=/home/nicolas/testjava/
?????

Reply

Marsh Posté le 09-01-2005 à 18:15:37    

je suis très nul en shell, mais je crois que ca ressemble à ca ouais ...
 
(toujours pas de trace d'un fichier Entier.java ...)
 
remarque : la convention veut que les noms de classes commencent par une majuscule.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-01-2005 à 09:54:28    

Et est-ce que tu as compilé la classe Nombre ?
 
tu peux indiquer le classpath en ligne de commande avec l'option -cp.
Vu que tu as deux répertoire différents, tu auras les deux dans ton classpath (sauf si tu te mets dans l'un d'eux).
Pour tout compiler en même temps :


find /home/nicolas/testjava/ /home/nicolas/test -name "*.java" | xargs javac -cp /home/nicolas/testjava/:/home/nicolas/test/


---------------
get amaroK plugin
Reply

Marsh Posté le 10-01-2005 à 10:27:57    

benou a écrit :

Il faut que tu fixe la variable systême à "/home/nicolas/testjava/" (la racine des répertoires contenant tes classes)


mais arrete avec ça bordel [:sisicaivrai]
il faut qu'ils la settent au runtime (et/ou compile time) et foutre la paix a la variable systeme [:sisicaivrai]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 10-01-2005 à 10:40:17    

j'ai jamais dis qu'il l'ajoute à son profile ... si il le fait dans un shell ca n'affectera que le shell ouvert, pas tout le système


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-01-2005 à 11:00:07    

moi j'ai fais export CLASSPATH=$CLASSPATH:. dans mon profil et je vous merde


---------------
IVG en france
Reply

Marsh Posté le 10-01-2005 à 12:40:16    

ça veut dire que t'as un CLASSPATH systeme pour tous les users ([:totoz]) ou que ce que tu fais dans ton profil ne sert à rien


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 10-01-2005 à 12:42:49    

non, c'est uniquement pour mon compte, dans mon .bash_profil, je sais que c'est mal par principe, et je redefinis le CLASSPATH pour une appli au lancement quand j'ai besoin.
mais pour des petites classes a la main c'est pratique [:joce]


---------------
IVG en france
Reply

Marsh Posté le 10-01-2005 à 12:42:49   

Reply

Marsh Posté le 10-01-2005 à 12:57:09    

ben euh si t'as pas de classpath, par defaut il sera à . hein ...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 10-01-2005 à 13:09:44    

t'es sur :??:  
 
 bon, ben crotte alors :/


---------------
IVG en france
Reply

Marsh Posté le 10-01-2005 à 13:13:03    

oui


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 10-01-2005 à 17:20:46    

the real moins moins a écrit :

ben euh si t'as pas de classpath, par defaut il sera à . hein ...


 :heink: bha non ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-01-2005 à 17:43:59    

ben si ... ou alors on se comprends mal :/
Moi je comprends, que tu spécifie pas de classpath en option, ou pas la variable d'env CLASSPATH, le classpath comprend de toutes façons . !


---------------
get amaroK plugin
Reply

Marsh Posté le 10-01-2005 à 17:56:05    

faudrait peut etre arreter de conseiller l'utilisation de la variable systeme classpath  :pfff:  
deuxiemement : met chaque class dans un package !!!

Reply

Marsh Posté le 10-01-2005 à 18:54:12    

bobuse a écrit :

ben si ... ou alors on se comprends mal :/


Je sais pas. moi ce que je dis c'est que si tu ne spécifie aucun classpath, il n'a pas de valeur par défaut => même le rep courant n'est pas utilisé pour chercher les .class.
 
On a déjà assez eu de topic de débutant qui ne comprenaient pas pkoi le compilateur gueulait ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 11-01-2005 à 12:00:46    

sans tricher :o

Code :
  1. [dumoulin@cemagref-lm0lp4 ~/tmp/java1]$cat Plop1.java
  2. public class Plop1 {
  3.         public static void main(String[] args) {
  4.                 System.out.println("plop" );
  5.         }
  6. }
  7. [dumoulin@cemagref-lm0lp4 ~/tmp/java1]$javac Plop1.java
  8. [dumoulin@cemagref-lm0lp4 ~/tmp/java1]$echo $CLASSPATH
  9. [dumoulin@cemagref-lm0lp4 ~/tmp/java1]$alias java
  10. bash: alias: java: not found
  11. [dumoulin@cemagref-lm0lp4 ~/tmp/java1]$java Plop1
  12. plop


Message édité par bobuse le 11-01-2005 à 12:01:21

---------------
get amaroK plugin
Reply

Marsh Posté le 11-01-2005 à 15:04:32    

bha mince alors ...
je tente chez moi ce soir ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

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