如何从* .class文件中获取java.lang.Class?
我有一个文件夹whicj包含* .class文件。我需要将它们全部反映到java.lang.Class中。我已经阅读this回答并按照第一个选项中的说明进行了操作:
URL[] classUrl = new URL[1];
classUrl[0] = new URL("file:" + classFilesFolder);
URLClassLoader ucl = new URLClassLoader(classUrl);
Class c = ucl.loadClass("I DON'T KNOW CLASS NAMES HERE!");
问题是我不知道我正在反映的课程名称。我该如何解决这个问题?
答案 0 :(得分:0)
如果classFilesFolder
为/home/user
且文件夹中的文件名称为/home/user/com/something/My.class
,则类名(包括包)将为com.something.My
。因此,类名是完整的文件名,删除了classFilesFolder
,然后将所有正斜杠更改为点,并在结尾删除.class
。
答案 1 :(得分:0)
您可以asm使用parse a class file,然后拨打getClassName()
查找姓名。