【发布时间】:2013-07-17 05:59:11
【问题描述】:
什么时候两个类被认为是相同的?比如,有没有什么东西可以作为一个类的签名?如果是这样,签名、包信息、类名等有什么影响?我问这个是因为我需要动态加载一个类,而且我总是得到一个ClassNotFoundException
更多细节:我正在使用 Eclipse。我的package com.example.project.sub1 中有一个abstract class Panel。和package com.example.project.sub2 中的class Test,它将调用
编译得很好。然后我将Panel.java 中的所有内容复制到一个新目录中,并创建了一个class MyPanel extends Panel 和Panel.java。这也编译得很好,但是当我指定新的MyPanel.class 的路径时,我总是得到一个ClassNotFoundException。知道我哪里错了吗?谢谢。
编辑: 堆栈跟踪:
java.lang.ClassNotFoundException: MyPanel 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 在 com.example.project.sub2 (Test.java:111) 在 java.lang.Thread.run(Thread.java:680)【问题讨论】:
-
文件很可能只是在错误的位置。你能显示所有涉及的路径吗?还有整个例外?
-
@Thilo 我使用了 JFileChooser 来定位文件,所以我假设路径是正确的?我会在一分钟内包含堆栈跟踪,但乍一看它并没有帮助。
-
很有帮助 ;-) 说明你使用了错误的类名(缺少包)。
标签: java reflection