动态生成并编译java文件的包路径问题
前言:
接触java动态代理不久,实战时发现容易出现loadClass时动态生成的代理类包路径错误(找不到生成的.class文件在哪)导致的ClassNotFound异常。以下为解决方案。
一 在java项目中:
java项目中,编译后的.class文件保存在
项目名/bin目录下,filename应为
System.getProperty("user.dir") +"/bin/+包名+类名"
二 在javaweb项目中:
javaweb项目,java文件编译后的.class文件位于
项目名/WebRoot/WEB-INF/classes目录下,filename应为
System.getProperty("user.dir") + "/WebRoot/WEB-INF/classes/+包名+类名"
注:其中,System.getProperty("user.dir")为获取项目的绝对路径。