Hi!
Is the runtime library included in the SootClassPath? The easiest way to
do that is to include "rt.jar" in your JRE lib folder.
Cheers,
Eric
------------------------------------------------------------
Eric Bodden
CS-DIP full time student @ University of Kent at Canterbury
UKC internal phone: 5095
ICQ UIN: 12656220, secure mail on demand
Website: http://www.bodden.de
-----Original Message-----
From: owner-soot-list@sable.mcgill.ca
[mailto:owner-soot-list@sable.mcgill.ca] On Behalf Of Chris Pickett
Sent: 11 February 2003 4:44 AM
To: soot-list@sable.mcgill.ca
Subject: soot createclass tutorial
Hi,
I'm trying to do the first lesson in the second half of the soot
tutorial. I can get CreateClassExample.java to compile with
Sun's SDK
1.4.1, but I can't get CreateClassExample.class to execute without
throwing the following exception:
Exception in thread "main" java.lang.RuntimeException: tried to get
nonexistent field!
at soot.Scene.getField(Scene.java:329)
at CreateClassExample.main(CreateClassExample.java:98)
In CreateClassExample:
// add "tmpRef = java.lang.System.out"
units.add(
Jimple.v().newAssignStmt(
tmpRef, Jimple.v().newStaticFieldRef(
Scene.v().getField(
"<java.lang.System: java.io.PrintStream out>"))));
In Scene.java:
public SootField getField(String fieldSignature)
{
SootField f = (SootField)
fieldSignatureToField.get(fieldSignature);
if (f != null)
return f;
throw new RuntimeException("tried to get nonexistent field!");
}
Also, in the tutorial, r0 and r1 in the sample Jimple output
need to be
updated to l0 and tmpRef respectively.
Cheers,
Chris