hier ist der Befehl, den ich auf 10 Kommando-Shell WIndows verwenden:RUSS - CompilationDeathException (und ein Phantom Armee)
java
-cp .\soot-2.5.0.jar soot.Main
-cp ".;R:\...\OCLRuler\lib;C:\...\jdk1.8.0_144\bin"
-pp -process-dir R:\...\OCLRuler\src\
-src-prec java
-d R:\...\test\soot
-allow-phantom-refs
-main-class OCLRuler
Wenn ich es ausführen, bekomme ich die folgende Ausgabe:
Soot started on Tue Sep 26 13:28:32 EDT 2017
Warning: java.dyn.InvokeDynamic is a phantom class!
Warning: Main is a phantom class!
Warning: MainMulti is a phantom class!
Warning: oclruler.a_test.MainRawTesting is a phantom class!
... all of them (100+ lines)...
Warning: oclruler.utils.ToolBox is a phantom class!
OCLRuler.java: Class "oclruler.genetics.EvaluatorOCL" not found.
OCLRuler.java: Class "oclruler.genetics.EvaluatorOCL" not found.
Exception in thread "main" soot.CompilationDeathException: Could not compile
at soot.javaToJimple.JavaToJimple.compile(JavaToJimple.java:104)
at soot.javaToJimple.InitialResolver.formAst(InitialResolver.java:117)
at soot.JavaClassSource.resolve(JavaClassSource.java:54)
at soot.SootResolver.bringToHierarchy(SootResolver.java:215)
at soot.SootResolver.bringToSignatures(SootResolver.java:239)
at soot.SootResolver.processResolveWorklist(SootResolver.java:154)
at soot.SootResolver.resolveClass(SootResolver.java:124)
at soot.Scene.loadClass(Scene.java:448)
at soot.Scene.loadClassAndSupport(Scene.java:433)
at soot.Scene.loadNecessaryClasses(Scene.java:1076)
at soot.Main.run(Main.java:167)
at soot.Main.main(Main.java:141)
Alle Bibliotheken, die im OCLRUler-Projekt verwendet werden, sind in OCLRUler/lib
und allen Quellen in OCLRuler/src
enthalten. Das Ausgabeverzeichnis ist nicht im Soot-Verzeichnis enthalten. Außerdem kompiliert das Projekt (ich arbeite daran und damit). Das Verzeichnis .
enthält alle Russ/Jasmin/Heros Gläser.
Dennoch werden alle Klassen als Phantome betrachtet, und Soot Compilation Abordnungen, weil (ich denke) es fehlt Körper aus diesen Klassen. Ich meine, dass "EvaluatorOCL" (d. H. Immer noch raten, die Quelle der CompilationDeathException) ist eine "Phantom-Klasse".
Was ist los?
Soll ich alle und alle Pakete in Soots Klassenpfad hinzufügen?
Ich habe alle möglichen Befehlszeilenausdrücke ausprobiert - bis ich profund verloren bin. Hat jemand eine Ahnung davon?
Vielen Dank. Edouard
Dank Eric. Aber mit dem bin-Ordner (mit Klassen-Dateien), zusammen mit der "-src-prec-Klasse" bekomme ich eine 'RuntTimeException: Konnte CLassfile nicht laden: oclluler.genetics.Oracle' Welches ist eine vorhandene und kompilierte Datei –
Das Projekt, das ich anstrebe Analysieren ist in Java 8. –