Erreur lors de l'execution d'un programme en Java - Java - Programmation
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)
Marsh Posté le 14-04-2003 à 11:20:43
kerplunk a écrit : salut, |
Quel OS?
montre-nous les commandes exactes que tu tapez ...
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
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
Marsh Posté le 14-04-2003 à 11:46:48
Alors euh...
1) t'as fait un javac prog3.java avant de faire java prog3 ?
2) ton main balance une IOException... Et qui va la catcher ?
Marsh Posté le 14-04-2003 à 11:53:08
kerplunk a écrit : bon alors, voila le programme: |
La signature de la fonction main est:
Code :
|
Il n'y a pas de throw ...
EDIT: un truc dans les balises ...
Marsh Posté le 14-04-2003 à 12:12:04
Taiche a écrit : Alors euh... |
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
Mais ca vient pas du programme c sur... sinon je suis sous 2k, ca peut ptetre venir de la
Marsh Posté le 14-04-2003 à 12:23:11
kerplunk a écrit : |
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.
Marsh Posté le 14-04-2003 à 12:25:28
western a écrit :
|
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
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
EDIT: PS2: chez moi, ton code compile et fonctionne...
je sais pas avec quoi tu compiles, mais utilise plutot javac...
Marsh Posté le 14-04-2003 à 12:27:02
jdois faire quoi alors ? parceque chui un peu paumé la...
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
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 ?
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 ?
Marsh Posté le 14-04-2003 à 12:59:54
ben je t'ai dit, chez moi ca marche
Marsh Posté le 14-04-2003 à 14:14:51
T'as vérifié que . est bien dans ton classpath, des fois ?
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
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é.
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.
Marsh Posté le 14-04-2003 à 16:10:37
si tu fais "java" tout seul, il te dit quoi ? et "javac" ?
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
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
Marsh Posté le 14-04-2003 à 22:38:12
euh juste une note a taiche et western: main peut thrower n'importe quoi.
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"
vous sauriez pas pk ??
merci bien!