OSDN Git Service

coding.
authoriga <tosiki.iga@nifty.ne.jp>
Mon, 31 Mar 2014 12:21:16 +0000 (21:21 +0900)
committeriga <tosiki.iga@nifty.ne.jp>
Mon, 31 Mar 2014 12:23:02 +0000 (21:23 +0900)
jcfa/src/jp/igapyon/jcfa/JavaClassFileAnalyzer.java

index 1adc47e..406f55d 100644 (file)
@@ -6,9 +6,6 @@ import java.io.IOException;
 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
@@ -17,12 +14,16 @@ import org.apache.bcel.classfile.Field;
 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
@@ -32,6 +33,18 @@ public class JavaClassFileAnalyzer {
                        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