Plz help me out with class loader problem

hai forum members,

I have a code which loads class files from local disk.

It works fine with some classes ,

But i get this exception when i am selecting certain other class files

I am using jdeveloper.

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Filter (wrong name: project1/Filter)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:620)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)

at java.net.URLClassLoader.access$100(URLClassLoader.java:56)

at java.net.URLClassLoader$1.run(URLClassLoader.java:195)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

at com.jutframe.JavaUnitTester.selectClass_actionPerformed(JavaUnitTester.java:449)

at com.jutframe.JavaUnitTester$7.actionPerformed(JavaUnitTester.java:338)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.AbstractButton.doClick(AbstractButton.java:302)

at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)

at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)

at java.awt.Component.processMouseEvent(Component.java:5488)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)

at java.awt.Component.processEvent(Component.java:5253)

at java.awt.Container.processEvent(Container.java:1966)

at java.awt.Component.dispatchEventImpl(Component.java:3955)

at java.awt.Container.dispatchEventImpl(Container.java:2024)

at java.awt.Component.dispatchEvent(Component.java:3803)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)

at java.awt.Container.dispatchEventImpl(Container.java:2010)

at java.awt.Window.dispatchEventImpl(Window.java:1766)

at java.awt.Component.dispatchEvent(Component.java:3803)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

-

JFileChooser jfilechooser=new JFileChooser();

Filterclass filter=new Filterclass();

//Set selection mode for file chooser

jfilechooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

//set file filter

jfilechooser.setFileFilter(filter);

int returnVal = jfilechooser.showOpenDialog(this);

if(returnVal == JFileChooser.APPROVE_OPTION)

{

try

{

String str = jfilechooser.getSelectedFile().getName();

String parent=jfilechooser.getSelectedFile().getParent();

// Create a File object on the root of the directory containing the class file

File file =new File(parent);

// Convert File to a URL

URL url = file.toURL();

URL[] urls =new URL[]{url};

// Create a new class loader with the directory

ClassLoader cl =new URLClassLoader(urls);

StringTokenizer st =new StringTokenizer(str,".");

String s = st.nextToken ();

Class c = cl.loadClass(s);//ERROR IS SHOWN IN THIS PARTICULAR LINE

Object instance=c.newInstance();

--

--

please help me trace my mistake.

thank you all.

[4934 byte] By [divyabhaskarana] at [2007-10-3 4:01:56]
# 1
> NoClassDefFoundError: Filter (wrong name: project1/Filter)How about using the full class name when loading a class?
CeciNEstPasUnProgrammeura at 2007-7-14 22:01:15 > top of Java-index,Java Essentials,New To Java...
# 2
did you mean to use getAbsolutepath() instead of getParent() ?that too is throwing class not found exception.I wonder why this code then works for some files ?
divyabhaskarana at 2007-7-14 22:01:15 > top of Java-index,Java Essentials,New To Java...
# 3
It probably works for the classes that are in the default package.
JoachimSauera at 2007-7-14 22:01:15 > top of Java-index,Java Essentials,New To Java...
# 4
Is there any alternative so that i can i can access all class files?Or what change shall i bring to my code to get it correct.thank you
divyabhaskarana at 2007-7-14 22:01:15 > top of Java-index,Java Essentials,New To Java...
# 5
A classloader doesn't expect a path name with slashes in it, it expectsa fully qualified class name with package names and dots in it.kind regards,Jos
JosAHa at 2007-7-14 22:01:15 > top of Java-index,Java Essentials,New To Java...
# 6
i think the problem that i have set a particular class path for my class files and my application loads files from that alone.So plz tell me if theres any way to access the class path of a particular file dynamically?regards
divyabhaskarana at 2007-7-14 22:01:15 > top of Java-index,Java Essentials,New To Java...
# 7
Read my previous reply #5.kind regards,Jos
JosAHa at 2007-7-14 22:01:15 > top of Java-index,Java Essentials,New To Java...