使用:
final Class<?> c = Class.forName(path);
这里是类所在的位置:http://prntscr.com/juqp7g
这是错误:
java.lang.ClassNotFoundException: interfaces/container/InventoryComponentAction
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at scripts.action.ActionManager.init(ActionManager.java:48)
at scripts.system.Application.lambda$0(Application.java:17)
at scripts.system.Application.log(Application.java:29)
at scripts.system.Application.main(Application.java:17)
最佳答案
Class.forName
的参数不是路径,而是完全限定的类名(使用点,而不是斜杠)。
不要做你正在做的事情,而是尝试:
final Class<?> c = Class.forName("interfaces.container.InventoryComponentAction");
或者更一般地说:
final Class<?> c = Class.forName(path.replace('/', '.'));
关于Java反射(reflect)Class.forName失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50849401/