OVH Cloud OVH Cloud

[Long] Ras le bol... erreur de n00bs

2 réponses
Avatar
Delf
J'ai un petit soucis qui commence vraiment a me plaire.

L'erreur:

[root@server NetStats]# java ThreadedServer
Exception in thread "main" java.lang.NoClassDefFoundError: ThreadedServer
(wrong name: NetStats/ThreadedServer)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
[root@server NetStats]#

J'ai parcouru les NG pdt une bonne heure... rien ni fait.
En fait il s'agit d'une app avec 2 .java. (ThreadedServer.java &
ThreadClass.java)
Compile et fonctionne parfaitement sous Win2K / NetBeans.
Compile (javac *.java) sous Linux/sdk1.4.2 mais pour de ce qui est de le
lancer...
En me placant dans le repertoire NetStats qui contient mes .class et .java
- java ThreadedServer # marche pas
- java -classpath . ThreadedServer # marche pas
- java -classpath /root/NetStats ThreadedServer # marche pas
- java -classpath /root/NetStats/ ThreadedServer # marche pas
- java -classpath "/root/NetStats" ThreadedServer # marche pas
- java -classpath "/root/NetStats/" ThreadedServer # marche pas

Partie de code:

# ThreadedServer.java

package NetStats;

...

public class ThreadedServer {

...

}

###

# ThreadClass

package NetStats;

...

class ThreadClass extends Thread {

...

}

#

J'crois que je vais casser qqchose...
Une idee ?
Merci bcp

--
Delf

2 réponses

Avatar
oliv
Delf wrote:
[ NetStats]# java ThreadedServer
Exception in thread "main" java.lang.NoClassDefFoundError: ThreadedServer
(wrong name: NetStats/ThreadedServer)


http://java.sun.com/docs/books/tutorial/java/interpack/managingfiles.html

La hiérarchie de directories doit reproduire le nommage du package :
sources
netstat
ThreadedServer.java
ThreadClass.java

si :
-----
package netstats;
class ThreadClass extends Thread {
}
-----


alors un makefile qui devrait marcher :
-----
# avec un dir "sources" et un dir "classes"

# faire "make" pour compiler et lancer

# but par defaut
all:
make code
make test

# compilation
code:
@echo ////////////////////////////////////////////////////
rm -Rf classes
mkdir classes
javac -d classes sources/netstats/*.java

# lancement
test:
java -cp classes netstats.ThreadedServer
-----

Avatar
Delf
"oliv" a écrit dans le message news:

alors un makefile qui devrait marcher :


Encore une fois, merci bcp :)

--
Delf, plus trp enerve a present :)