import jp.igapyon.jcfa.util.JcfaUtil;\r
\r
import org.apache.bcel.Constants;\r
-/**\r
- * Apache Jakarta BCELを用いたクラスファイル(バイトコード)解析サンプル\r
- */\r
import org.apache.bcel.classfile.ClassFormatException;\r
import org.apache.bcel.classfile.ClassParser;\r
import org.apache.bcel.classfile.Code;\r
import org.apache.bcel.classfile.JavaClass;\r
import org.apache.bcel.classfile.Method;\r
\r
+/**\r
+ * Apache Jakarta BCELを用いたクラスファイル(バイトコード)解析サンプル\r
+ */\r
+\r
public class JavaClassFileAnalyzer {\r
private static final String CLASS_MODULE = "./bin/test/TestJavaClass002.class";\r
\r
public static final void main(final String[] args) {\r
new JavaClassFileAnalyzer().process(new File(CLASS_MODULE), new File(\r
- "./test/output"));\r
+ "./testJavaClass/output"));\r
}\r
\r
private final void process(final File inputFile, final File outputDir) {\r
System.out.println("Classname : " + jc.getClassName());\r
System.out.println("Parent class: " + jc.getSuperclassName());\r
\r
+ final String[] split = jc.getClassName().split("\\.");\r
+ File actualyTargetDir = outputDir;\r
+ if (split.length > 1) {\r
+ for (int index = 0; index < split.length - 1; index++) {\r
+ actualyTargetDir = new File(outputDir, split[index]);\r
+ actualyTargetDir.mkdirs();\r
+ }\r
+ }\r
+\r
+ new File(actualyTargetDir, split[split.length - 1] + ".jcfa")\r
+ .createNewFile();\r
+\r
analyzeFields(jc);\r
analyzeMethods(jc);\r
} catch (ClassFormatException e) {\r