Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Newbie] Packages

3 réponses
Avatar
Teo
Bonjour,

Machine sous XP.
JDK 1.4.2 installé en d:\java
Variables d'environnement déclarées comme suit:
PATH=.......;d:\java\bin
CLASSPATH=d:\java\lib\tools.jar;d:\java\jre\classes

Si je ne fais pas de package, pas de pb.
Par contre, je crée un sous-rep test, avec "package test;" dans mes en-tête,
la compilation est ok, mais à l'execution, j'ai un Exception in thread
"main" java.lang.NoClassDefFoundError: TestPoint. J'ai essayé de rajouter
d:\java\jre\classes\geo dans le classpath mais sans succès.

Merci pour votre aide éventuelle.

package geo;
public class TestPoint {
public static void main(String[] arg){
Point lePoint = new Point();
lePoint.tester();
}
}


package geo;
public class Point {
public void tester() {
System.out.println("Point");
}
}

3 réponses

Avatar
yvon.thoravalNO-SPAM
Teo wrote:


package geo;
public class TestPoint {
public static void main(String[] arg){
Point lePoint = new Point();
lePoint.tester();
}
}


package geo;
public class Point {
public void tester() {
System.out.println("Point");
}
}


Voilà comment j'ai fait (et ça marche) :

dans un rep qcp j'ai créé :

src avec dedans deux reps : test, geo et lib

dans test j'ai mis TestPoint.java :
package test;
import geo.*;

public class TestPoint {
public static void main(String[] arg){
Point lePoint = new Point();
lePoint.tester();
}
}

(je pense que tu as oublié "import geo.*;"

dans geo j'ai mis Point.java :
package geo;
public class Point {
public void tester() {
System.out.println("Point");
}
}
(exactement comme le tien)

puis j'ai lancé au term les commandes suivantes (je suis sur MacOS X) :
~/Desktop/essai> javac -sourcepath src -d classes src/geo/*.java
~/Desktop/essai> javac -sourcepath src -d classes src/test/*.java
~/Desktop/essai> jar -cfM lib/point.jar -C classes .
(ne pas oublier le "." à la fin...

puis je lance par :
java -cp lib/point.jar test.TestPoint

et ça roule...


--
yt

Avatar
yvon.thoravalNO-SPAM
Yvon Thoraval wrote:

src avec dedans deux reps : test, geo et lib


oups !!! lib est dans le même rep bque src et classes :

Desktop/essai il y a :

classes/geo/Point.class
classes/test/TestPoint.class
lib/point.jar
src/geo/Point.java
src/test/TestPoint.java

et :

doc/<la docum générée par javadoc> :

~/Desktop/essai> javadoc -sourcepath ./src -d ./doc geo test

--
yt

Avatar
Teo
Merci, mais en fait, il suffit de compiler à l'extérieur du package et de
mettre le chemin dans la compilation, soit dans mon exemple:
d:javajreclasses>javac test/TestPoint.java
J'ai trouvé tout à fait par hasard, en me gourant de répertoire lors d'une
compilation.
En tous cas, merci pour les infos.


"Teo" a écrit dans le message de
news:408fd063$0$17500$
Bonjour,

Machine sous XP.
JDK 1.4.2 installé en d:java
Variables d'environnement déclarées comme suit:
PATH=.......;d:javabin
CLASSPATH=d:javalibtools.jar;d:javajreclasses

Si je ne fais pas de package, pas de pb.
Par contre, je crée un sous-rep test, avec "package test;" dans mes
en-tête,

la compilation est ok, mais à l'execution, j'ai un Exception in thread
"main" java.lang.NoClassDefFoundError: TestPoint. J'ai essayé de rajouter
d:javajreclassesgeo dans le classpath mais sans succès.

Merci pour votre aide éventuelle.

package geo;
public class TestPoint {
public static void main(String[] arg){
Point lePoint = new Point();
lePoint.tester();
}
}


package geo;
public class Point {
public void tester() {
System.out.println("Point");
}
}