为了账号安全,请及时绑定邮箱和手机立即绑定

为啥我load到内存到时候会报找不到class文件

// load到内存中		
ClassLoader cl = ClassLoader.getSystemClassLoader();		
Class c = cl.loadClass("com.design.proxy.$Proxy0");

换成其他的class文件就没问题

正在回答

2 回答

建议你发一下你写的代码,看看是不是哪地方写错了,$Proxy后你是不是少了个0?

0 回复 有任何疑惑可以回复我~

问题已解决:

1、在生成java文件的时候,java文件路径不正确;

我写的是:

String filename = System.getProperty("user.dir")+"/com/design/proxy/$Proxy0.java";

但是我的编译器正式输出路径为:

String filename = System.getProperty("user.dir")+"/target/classes/com/design/proxy/$Proxy0.java";

总结:

需要确认Tomcat启动时查找class的路径是否和上面java文件的路径一致,因为编译java文件的class文件也会在此处,所以编译后的class不在Tomcat查找的位置则会报ClassNotFoundException;

1 回复 有任何疑惑可以回复我~
#1

嘉禾种嘉禾 提问者

第一行代码是跟着老师敲的,第二行代码是查看过我的Tomcat执行后会在target中输出所有的类之后改动的,将$Proxy.java编译后生成的$Proxy.class文件也在这个里面就处理了该问题;
2018-04-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥我load到内存到时候会报找不到class文件

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信