我要感谢那些irc://freenode.org/##java
指导我完成以下食谱的好人:
// replace 'Throwable' with something else in production code :-)
JavaClass recipe() throws Throwable {
URLClassLoader loader = new URLClassLoader(new URL[] {
new URL("file:///usr/share/java/js.jar"),
});
String path = "org/mozilla/classfile/ByteCode.class";
InputStream resource = loader.getResourceAsStream(path);
String fake_filename = "<" + path + ">";
ClassParser classparser = new ClassParser(resource, fake_filename);
JavaClass java_class = classparser.parse();
// System.out.format("%s\n", jc);
return java_class;
}
path
可以通过基于用户输入以正确格式计算字符串来对类路径和值进行解硬编码。
我将使用我接受的答案,因为它需要我做的工作更少,但我想提一下这个答案,因为它更普遍适用(即依赖项更少)。