通过URLClassLoader加载.class文件-NoClassDefFoundError

时间:2019-06-20 12:10:56

标签: java intellij-idea reflection

我知道这个问题已被问过多次(例如here),但是似乎没有一个答案对我有用。 这是一项家庭作业,我应该通过反射API来“破解”几个类文件,但是我什至无法加载它们。

我放入CREATE TABLE employees ( employee_id, manager_id ) AS SELECT 100, NULL FROM DUAL UNION ALL SELECT 101, 100 FROM DUAL UNION ALL SELECT 102, 101 FROM DUAL UNION ALL SELECT 103, 102 FROM DUAL UNION ALL SELECT 104, 103 FROM DUAL UNION ALL SELECT 105, 101 FROM DUAL UNION ALL SELECT 106, 105 FROM DUAL UNION ALL SELECT 107, 106 FROM DUAL UNION ALL SELECT 108, 101 FROM DUAL UNION ALL SELECT 109, 108 FROM DUAL; 中的三个SELECT employee_id, ( SELECT COUNT(*) FROM employees s START WITH s.manager_id = e.employee_id CONNECT BY PRIOR employee_id = manager_id ) AS num_subordinates FROM employees e 文件(Inscription.class,Decoder.class,Safe.class)。然后,我尝试通过URLClassLoader加载它们:

.class

我也试图一次一个地加载文件,但是显然这不起作用,因为URLClassLoader只接受目录或JAR文件:

D:\class\

我的类路径配置如下:

enter image description here

这是配置问题还是我使用的URLClassLoader错误?也许还有另一种加载类文件的方法吗?

1 个答案:

答案 0 :(得分:1)

似乎有人在不保留所需目录结构的情况下移动了.class文件。

package ea_6_1;声明的Java类必须驻留在名为ea_6_1的目录中(至少在我所知道的每个Java实现中)。