现在我正在为我们的项目目的开发一个maven插件。
该插件的参数 dtoPackage 类似于"com/blablabla/dto"
。它包含有关DTO课程的信息。
另一个参数是 workingDirectory - 编译的类目录,类似于${project.build.directory}/classes/
。
然后我想在我的插件中从DTO包中获取Class对象。我做了什么:
URL[] urls = new URL[]{new URL("file:///" + workingDirectory.concat(dtoPackage))};
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass(dtoPackage.replaceAll("/", ".").concat(".DtoClassName"));
异常是:java.lang.ClassNotFoundException:com.blablabla.dto.DtoClassName
有什么问题?
答案 0 :(得分:0)
感谢用户zapl。无需将 workingDirectory 字符串与 dtoPackage 字符串连接起来。以下代码按计划运行。
URL[] urls = new URL[]{new URL("file:///" + workingDirectory)};
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass(dtoPackage.replaceAll("/", ".").concat(".DtoClassName"));