1

*.class ファイルから java.lang.Class を取得するには?

*.class ファイルを含むフォルダーがあります。それらをすべてjava.lang.Classに反映する必要があります。最初のオプションで述べたように、私はこの回答を読みました。

        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!");

問題は、反映しているクラスの名前がわからないことです。どうすればこの問題を解決できますか?

4

2 に答える 2

0

asmを使用してクラスファイルを解析してから、を呼び出しgetClassName()て名前を見つけることができます。

于 2012-08-17T13:48:56.633 に答える
0

classFilesFolderがで、フォルダ内のファイル/home/userが のような名前の/home/user/com/something/My.class場合、クラス名 (パッケージを含む) は になりますcom.something.My。したがって、クラス名は完全なファイル名であり、classFilesFolder削除され、すべてのスラッシュがドットに変更さ.classれ、最後に削除されます。

于 2012-08-17T13:25:05.047 に答える