1
votes

I'm getting the NoClassDefError when I try to run my program from the command line. It works fine in Netbeans, and javac compiles correctly.

I have a class called DistributedSystem which so far is only supposed to print "hello.". The directory is src/distributedsystem/ which contains DistributedSystem.java, and DistributedSystem.class after the compile.

If I'm inside src/distributedsystem/ and run

java DistributedSystem 

then I get

Exception in thread "main" java.lang.NoClassDefFoundError: DistributedSystem (wrong name: distributedsystem/DistributedSystem)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

I also get the exact same error if I'm inside src/distributedsystem/ and run

java -cp . DistributedSystem

which is what I thought would fix the problem. I have also tried making sure classpath isn't set somewhere else, even though -cp should overwrite it. Anyone have any ideas what could be wrong?

2
Can you post the code of DistributedSystem.java please?rileyberton
you need to use java distributedsystem.DistributedSystem from the src folder assuming the class file is in src/DistributedSystemArun P Johny

2 Answers

0
votes

Go to folder src then compile from there and then run

0
votes

The classpath should point to the base directory. It looks as if you are attempting to run class DistributedSystem in package distributedsystem, but your classpath is set to project/bin/distributedsystem instead of project/bin.