【发布时间】:2019-04-25 18:19:52
【问题描述】:
我正在开发一个需要能够对 Java 代码进行一些分析的应用程序;有的通过文字,有的通过反思。用户应该能够输入一个目录,程序将从其中提取所有 .java 和 .class 文件。我对 .java 文件没有任何问题,但是当我尝试获取 .class 文件的类时,它不起作用。
我已经研究过使用带有 URL 的 ClassLoader。到目前为止我能找到的东西给了我这个
URL url = this.openFile().toURI().toURL();
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass(this.path);
return cls;
path 只是一个字符串,其中包含相关 .class 文件的实际路径,例如Users/me/Documents/Application/out/production/MyPackage/MyClass.class。根据我自己阅读的理解,这种方法与我了解输入的包结构有关,但总的来说我不知道。我所拥有的只是 .class 文件的绝对路径。有没有办法,只使用这条路径(或它的一些简单转换),我可以将实际的 MyClass 类对象加载到我的程序中并开始对其进行反射?
【问题讨论】:
标签: java reflection urlclassloader