tags:

views:

57

answers:

4

Hi, I removed some class file *.class from a java project. It aims to make the whole project folder clean. Since the project was compilable and running well, I suppose that it will run faster after I clear some *.class.

However, I got exception java.lang.ClassNotFoundException:

at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

What is wrong with class loader?

+3  A: 

I think it's looking for the .class files you removed? Does the issue go away if you put them back?

.class files are the executable code that the Java Virtual Machine uses to run your program. If they're not there, then the JVM cannot run your program.

Have you tried cleaning and rebuilding the project through your IDE?

Noel M
thanks. I thought class file expect to be generated when I compile main java class. My trouble is it gets the mentioned exception at the first place.
aladine
+3  A: 

Do NOT remove the *.class files. Those are what Java loads to run your program!

Recompile your program and try to run it again.

BoltClock
+3  A: 

The .class files are what the Java Virtual Machine "executes". If you delete them, you no longer have a consistent program.

Bozho
A: 

A common approach is to not compile your classes into the same directory that the source code lives in. Using tools like Ant or Maven, or from within your IDE, you can easily have your generated class files go to a different directory. This will help reduce the clutter.

Robert Watkins