Erreur lors de l'execution d'un programme en Java

Erreur lors de l'execution d'un programme en Java - Java - Programmation

Marsh Posté le 14-04-2003 à 11:09:15    

salut,
 
Alors voila je viens d'installer java, g bien déclaré les variables d'environnements, quand je compile n'importe quel programme, ca marche mais lorsque je l'executer g droit a "Exception in thread "main" java.lang.NoClassDefFoundError: prog3" :sweat:  
vous sauriez pas pk ??
merci bien!

Reply

Marsh Posté le 14-04-2003 à 11:09:15   

Reply

Marsh Posté le 14-04-2003 à 11:12:21    

es-tu bien dans le bon répertoire ?
ton prog3 n'a-t-il pas de majuscules (Prog3)


Message édité par nero27 le 14-04-2003 à 11:13:15
Reply

Marsh Posté le 14-04-2003 à 11:20:43    

kerplunk a écrit :

salut,
 
Alors voila je viens d'installer java, g bien déclaré les variables d'environnements, quand je compile n'importe quel programme, ca marche mais lorsque je l'executer g droit a "Exception in thread "main" java.lang.NoClassDefFoundError: prog3" :sweat:  
vous sauriez pas pk ??
merci bien!


Quel OS?
montre-nous les commandes exactes que tu tapez ...

Reply

Marsh Posté le 14-04-2003 à 11:41:24    

si je puis me permettre (et je me permets !)
 
 http://www.gnurou.org/documents/sm [...] ns-fr.html
 
 

Reply

Marsh Posté le 14-04-2003 à 11:43:59    

bon alors, voila le programme:
import java.io.* ;
 
public class prog3
{
static BufferedReader flux=new BufferedReader(new InputStreamReader(System.in));
 
 
 public static void main(String args[]) throws IOException
 {
  System.out.println("coucou" );
 }
}
 
et la commande:
 
C:\projet>java prog3
Exception in thread "main" java.lang.NoClassDefFoundError: prog3

Reply

Marsh Posté le 14-04-2003 à 11:46:48    

Alors euh...
1) t'as fait un javac prog3.java avant de faire java prog3 ? [:ddr555]  
2) ton main balance une IOException... :heink: Et qui va la catcher ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-04-2003 à 11:53:08    

kerplunk a écrit :

bon alors, voila le programme:
import java.io.* ;
 
public class prog3
{
static BufferedReader flux=new BufferedReader(new InputStreamReader(System.in));
 
 
 public static void main(String args[]) throws IOException
 {
  System.out.println("coucou" );
 }
}
 
et la commande:
 
C:\projet>java prog3
Exception in thread "main" java.lang.NoClassDefFoundError: prog3
 


La signature de la fonction main est:

Code :
  1. public static void main (String [] argv)
  2. {
  3. //bla bla
  4. }


Il n'y a pas de throw ...
 
EDIT: un truc dans les balises ...


Message édité par western le 14-04-2003 à 11:54:28
Reply

Marsh Posté le 14-04-2003 à 12:12:04    

Taiche a écrit :

Alors euh...
1) t'as fait un javac prog3.java avant de faire java prog3 ? [:ddr555]  
2) ton main balance une IOException... :heink: Et qui va la catcher ?


 
autant pour moi g oublié de préciser que j'avais compiler avec SciTE avant de faire java prog3. Pour ce qui est du catch, on a encore pas vu ca en tp  :D
 
Mais ca vient pas du programme c sur... sinon je suis sous 2k, ca peut ptetre venir de la :??:


Message édité par kerplunk le 14-04-2003 à 12:13:46
Reply

Marsh Posté le 14-04-2003 à 12:23:11    

kerplunk a écrit :


Mais ca vient pas du programme c sur... sinon je suis sous 2k, ca peut ptetre venir de la :??:  


Non, mate ce qu'a dit western. Ton prog compile mais java essaie d'appeler le main() avec la signature qu'il connaît (celle qui ne renvoie pas d'Exception et de toute façon ça a pas de sens à mon avis) mais il la trouve pas et donc plante.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-04-2003 à 12:25:28    

western a écrit :


La signature de la fonction main est:

Code :
  1. public static void main (String [] argv)
  2. {
  3. //bla bla
  4. }


Il n'y a pas de throw ...
 
EDIT: un truc dans les balises ...  


 
negatif, on peut faire un throw dans la signature du main, mais c'est pas propre. Surtout qu'ici y a pas d'exception lancee par le main.
 
PS: plutot que de commencer par le programme coucou qui aborde les bufferedReader, tu devrais commencer par le programme Hello World qui lui ne les aborde pas  :D  
desole...
Pour resumer, enleve ce throw de ton main, si vous ne les avez pas vu, inutile de les utiliser, et enleve ce bufferedReader static qui ne sert a rien  :hello:
 
EDIT: PS2: chez moi, ton code compile et fonctionne...
je sais pas avec quoi tu compiles, mais utilise plutot javac...


Message édité par souk le 14-04-2003 à 12:30:49
Reply

Marsh Posté le 14-04-2003 à 12:25:28   

Reply

Marsh Posté le 14-04-2003 à 12:27:02    

jdois faire quoi alors ? parceque chui un peu paumé la...  :pt1cable:

Reply

Marsh Posté le 14-04-2003 à 12:32:20    

tu fais comme Teich t'a dit:
 
javac prog3.java
 
puis  
 
java prog3
 
et la, joie, "coucou" s'ecrit juste en dessous

Reply

Marsh Posté le 14-04-2003 à 12:34:45    

nan Souk ca je lai fait deja  :)

Reply

Marsh Posté le 14-04-2003 à 12:48:57    

ben sur ma machine ca marche, j'ai win2k et le jdk1.4
 
je ne sais pas quoi te dire de plus... tu veux pas reessayer en faisant exactement ca, sans te dire que t'as fait un truc equivalent ? parce que encore une fois, chez moi ca marche nickel.
Est-ce que tu as bien defini ton path ? tu as defini la variable JAVA_HOME ?

Reply

Marsh Posté le 14-04-2003 à 12:51:04    

oué je viens de reessayer en compilant avec javac, j'obtiens la meme chose, tu veux pas essayer de compiler le programme que g mi plus haut pour voir si ca marche ?

Reply

Marsh Posté le 14-04-2003 à 12:59:54    

ben je t'ai dit, chez moi ca marche
 
 http://www.ifrance.com/pic4hfr/prog3.jpg


Message édité par souk le 14-04-2003 à 13:14:51
Reply

Marsh Posté le 14-04-2003 à 13:34:12    

:sweat:

Reply

Marsh Posté le 14-04-2003 à 14:14:51    

T'as vérifié que . est bien dans ton classpath, des fois ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-04-2003 à 14:24:21    

dans mon classpath j'ai 'C:\java\tools.jar' et c'est donc dans le dossier c:\java qu'est installé java

Reply

Marsh Posté le 14-04-2003 à 14:26:21    

kerplunk a écrit :

dans mon classpath j'ai 'C:\java\tools.jar' et c'est donc dans le dossier c:\java qu'est installé java


Ouais mais non. Rajoute . dans ton classpath. Considère un jar comme un répertoire à part entière ; c'est pas passke C:\java\tools.jar est dans le classpath que tout le répertoire C:\java est aussi affecté.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-04-2003 à 14:34:54    

jle rajoute ou le . ?

Reply

Marsh Posté le 14-04-2003 à 14:39:19    

kerplunk a écrit :

jle rajoute ou le . ?


'tain, tu sais lire ?

Citation :

Rajoute . dans ton classpath.


Dans ta fenêtre DOS, tu fais set classpath=.;%classpath%
Si tu veux que ça soit permanent (et je te le conseille), tu vas dans les propriétés de ton système, clic sur Avancé -> Variables d'environnement et t'édites celle de classpath.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-04-2003 à 14:49:34    

marche pas, j'en ai marrrrre  :pt1cable:

Reply

Marsh Posté le 14-04-2003 à 16:10:37    

si tu fais "java" tout seul, il te dit quoi ? et "javac" ?
 

Reply

Marsh Posté le 14-04-2003 à 19:09:09    

ca met met ca
C:\projet>java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java -jar [-options] jarfile [args...]
           (to execute a jar file)
 
where options include:
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is client.
 
    -cp -classpath <directories and zip/jar files separated by ;>
                  set search path for application classes and resources
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -showversion  print product version and continue
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
 
C:\projet>javac
Usage: javac <options> <source files>
where possible options include:
  -g                        Generate all debugging info
  -g:none                   Generate no debugging info
  -g:{lines,vars,source}    Generate only some debugging info
  -O                        Optimize; may hinder debugging or enlarge class file
 
  -nowarn                   Generate no warnings
  -verbose                  Output messages about what the compiler is doing
  -deprecation              Output source locations where deprecated APIs are us
ed
  -classpath <path>         Specify where to find user class files
  -sourcepath <path>        Specify where to find input source files
  -bootclasspath <path>     Override location of bootstrap class files
  -extdirs <dirs>           Override location of installed extensions
  -d <directory>            Specify where to place generated class files
  -encoding <encoding>      Specify character encoding used by source files
  -source <release>         Provide source compatibility with specified release
  -target <release>         Generate class files for specific VM version
  -help                     Print a synopsis of standard options
 

Reply

Marsh Posté le 14-04-2003 à 22:38:12    

euh juste une note a taiche et western: main peut thrower n'importe quoi.


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

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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