CodeCrawler Swiki
CodeCrawler Homepage
Informationen zu FAMIX
Projektseiten java2cdif
java2cdif ist ein Tool zum Erzeugen von CDIF-Dateien aus Java-Bytecode. Das Metamodell für die CDIF-Dateien ist FAMIX.
Die so ereugten Dateien können anschließend in den CodeCrawler importiert werden. Damit kann man endlich auch
Javaprogramme mit dem CodeCrawler untersuchen.
Derzeit unterstützt java2cdiff die FAMIX-Versionen 2.0 und 2.2.
Zur Analyse des Bytecodes können zwei verschiedene Bibliotheken eingesetzt werden:
Realisiert ist java2cdif als Ant-Task.
Für alle, die den Quellcode übersetzen möchten, jedoch nicht CFParse haben/wollen, gibt es eine Dummy-Implementierung, mit der zwar das Übersetzen funktioniert, die aber nix tut als NPE zu produzieren.
If You dont want to use CFParse, but want to compile java2cdif yourself, You can use this Dummy-Implementation.
<?xml version="1.0"?> <project name="xyz" default="default" basedir="."> <target name="default" depends="j2c"/> <path id="path.build.lib"> <fileset dir="./lib"> <include name="**/*.jar"/> <!-- bcel-5.1.jar --> </fileset> </path> <taskdef name="java2cdif" classname="ant.famix.JAVA2FAMIX"> <classpath location="./java2cdif.jar" /> <classpath refid="path.build.lib" /> </taskdef> <target name="j2c"> <java2cdif dirname="./classes" outputfile="xyzabc.cdif" libname="BCEL" famixversion="22" level="4"> </java2cdif> </target> </project>
Dies liefert z.B. folgede Ausgabe:
Beispielausgabe überspringen
Buildfile: build.xml j2c: [java2cdif] Dirname:./classes [java2cdif] OutputFile:D:\xyz\abc\xyzabc.cdif [java2cdif] start [java2cdif] Anzahl Packages: 10 [java2cdif] Anzahl Klassen: 86 [java2cdif] Anzahl Methoden: 420 [java2cdif] Anzahl Felder: 176 [java2cdif] Anzahl Aufrufe: 2034 [java2cdif] Anzahl Vererbungen: 82 [java2cdif] Anzahl Zugriffe: 509 [java2cdif] Anzahl lokale Variablen: 209 BUILD SUCCESSFUL Total time: 3 seconds
<?xml version="1.0"?> <project name="xyz" default="default" basedir="."> <target name="default" depends="j2c"/> <path id="path.build.lib"> <fileset dir="./lib"> <include name="**/*.jar"/> <!-- bcel-5.1.jar --> </fileset> </path> <taskdef name="java2cdif" classname="ant.famix.JAVA2FAMIX"> <classpath location="./java2cdif_0.5.0.jar" /> <classpath refid="path.build.lib" /> </taskdef> <target name="j2c"> <java2cdif dirname="./classes" outputfile="xyzabc.cdif" libname="BCEL" famixversion="22" level="4"> </java2cdif> </target> </project>
It will produce something like:
Buildfile: build.xml j2c: [java2cdif] Dirname:./classes [java2cdif] OutputFile:/test/xyzabc.cdif [java2cdif] start [java2cdif] Anzahl Packages: 9 [java2cdif] Anzahl Klassen: 86 [java2cdif] Anzahl Methoden: 418 [java2cdif] Anzahl Felder: 176 [java2cdif] Anzahl Aufrufe: 1975 [java2cdif] Anzahl Vererbungen: 100 [java2cdif] Anzahl Zugriffe: 509 [java2cdif] Anzahl lokale Variablen: 240 default: BUILD SUCCESSFUL Total time: 4 seconds
and a file called 'xyzabc.cdif'. It should look like xyzabc.cdif