The moose likes Beginning Java and the fly likes NoClassDefFoundError Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "NoClassDefFoundError" Watch "NoClassDefFoundError" New topic


Francesca Gibbons

Joined: Jul 30, 2008
Posts: 1
For code see:

my .java file is in c:\jdk\bin
my .class file is in c:\jdk\bin


runs with no errors (jse

java HelloWorldSwing

generates NoClassDefFoundError

I fail to understand why this is generated when the files are in the current directory. I've tried set CLASSPATH=C:\jdk\bin and then running java but i obtain the same result. I am positive this is not a typo. I had this problem many years ago when i first started Java, but haven't used it in years and am starting it up again. What am I missing? I've looked through the forum and the only think i haven't done is set a classpath environment which I dont (and others) think is necessary.

Thanks for your explanations. I created a start folder in the root. I could not run javac from anywhere but c:\jdk\bin.

Running javac c:\start\ in c:\start created the 2 class files.

Typing java start.HelloWorldSwing from bin folder still generated same error. java HelloWorldSwing generated same thing. java -classpath c:\start HelloWorldSwing also failed.

This seems so silly. Why does javac respond so easily to a directory path while java seems to be so clueless (like me).

Commenting out the package start; line allows the command

java -classpath c:\start HelloWorldSwing

to work. Thanks again for your assistance.
[ July 30, 2008: Message edited by: Francesca Gibbons ]
[ July 30, 2008: Message edited by: Francesca Gibbons ]
camilo lopes
Ranch Hand

Joined: Aug 08, 2007
Posts: 202
check this url:

Brazil - Sun Certified Java Programmer - SCJP 5 About Java - Update every Week.
Guide SCJP - tips that you need know
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 46349
I hope Francesca can read Portuguese, Camilo!

Welcome to JavaRanch

Don't put your own code into the bin directories; those are reserved for executable files from the Java installation. Put your code in its own directory, maybe a Java folder inside my Documents.

The file you have quoted has a package declaration. That means it will be in a folder called "start".
The way I would execute it is to put the .java file inside the Java folder and navigate to that folder then invoke
"javac -d ."

The -d bit instructs the compiler to create a directory (if necessary) and the "." bit means to look for source files in the current directory.

The other way is to use the mkdir command to create a folder called start, put the .java file in there, compile it from inside the start folder without -d and .

In both cases, go outside the start folder and start the application with this command

java start.HelloWorldSwing

Good luck with it.
I agree. Here's the link:
subject: NoClassDefFoundError
jQuery in Action, 3rd edition