<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"MS Gothic";
panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Menlo;
panose-1:2 11 6 9 3 8 4 2 2 4;}
@font-face
{font-family:"\@MS Gothic";
panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Vorformatiert Zchn";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
span.E-MailFormatvorlage18
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.HTMLVorformatiertZchn
{mso-style-name:"HTML Vorformatiert Zchn";
mso-style-priority:99;
mso-style-link:"HTML Vorformatiert";
font-family:"Courier New";}
span.pl-smi
{mso-style-name:pl-smi;}
span.pl-k
{mso-style-name:pl-k;}
span.pl-c1
{mso-style-name:pl-c1;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="DE" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">when you execute soot on JDK 8 and want to analyze bytecode >= JDK 9 using a classpath but not the modulepath feature<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">then configure soot as follows<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<pre><span class="pl-smi"><span lang="EN-US" style="font-family:Consolas;color:#24292E">Options</span></span><span class="pl-k"><span lang="EN-US" style="font-family:Consolas;color:#24292E">.</span></span><span lang="EN-US" style="font-family:Consolas;color:#24292E">v()<span class="pl-k">.</span>set_prepend_classpath(<span class="pl-c1">true</span>);<o:p></o:p></span></pre>
<pre><span class="pl-smi"><span lang="EN-US" style="font-family:Consolas;color:#24292E">Options</span></span><span class="pl-k"><span lang="EN-US" style="font-family:Consolas;color:#24292E">.</span></span><span lang="EN-US" style="font-family:Consolas;color:#24292E">v()<span class="pl-k">.</span>set_process_dir(</span><span class="pl-smi"><span lang="EN-US" style="font-family:Consolas;color:#24292E">Arrays</span></span><span class="pl-k"><span lang="EN-US" style="font-family:Consolas;color:#24292E">.</span></span><span lang="EN-US" style="font-family:Consolas;color:#24292E">asList(applicationClassPath()<span class="pl-k">.</span>split(</span><span class="pl-smi"><span lang="EN-US" style="font-family:Consolas;color:#24292E">File</span></span><span class="pl-k"><span lang="EN-US" style="font-family:Consolas;color:#24292E">.</span></span><span lang="EN-US" style="font-family:Consolas;color:#24292E">pathSeparator)));<o:p></o:p></span></pre>
<pre><span class="pl-smi"><span lang="EN-US" style="font-family:Consolas;color:#24292E">Options</span></span><span class="pl-k"><span lang="EN-US" style="font-family:Consolas;color:#24292E">.</span></span><span lang="EN-US" style="font-family:Consolas;color:#24292E">v()<span class="pl-k">.</span>set_claspath(sootClassPath());<o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-family:Consolas;color:#24292E"><o:p> </o:p></span></pre>
<pre><span lang="EN-US" style="font-family:Consolas;color:#24292E"><o:p> </o:p></span></pre>
<pre><span lang="EN-US" style="font-family:Consolas;color:#24292E">Best,<o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-family:Consolas;color:#24292E"><o:p> </o:p></span></pre>
<pre><span lang="EN-US" style="font-family:Consolas;color:#24292E">Andreas<o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-family:Consolas;color:#24292E"><o:p> </o:p></span></pre>
<pre><span lang="EN-US" style="font-family:Consolas;color:#24292E">IF you get any errors than please open an issue in Soot and post the whole error log there.<o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-family:Consolas;color:#24292E"><o:p> </o:p></span></pre>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">Von: </span></b><span style="font-size:12.0pt;color:black">Liu Yuan <liuyuan@fastmail.com><br>
<b>Datum: </b>Sonntag, 14. März 2021 um 13:59<br>
<b>An: </b>Andreas Peter Dann <adann@mail.uni-paderborn.de><br>
<b>Cc: </b>soot-list <soot-list@CS.McGill.CA><br>
<b>Betreff: </b>Re: [Soot-list] JDK Support and Soot's Classpath Setting<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">Hi Andreas, thank you very much for your reply! <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I tried it again. Unfortunately, it doesn’t work. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">My case is following. Could you please give me an example at JDK >=9? thank you.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><b><span style="font-family:Menlo;color:#073642">public</span></b><span style="font-family:Menlo;color:#333333"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><b><span style="font-family:Menlo;color:#073642">static</span></b><span style="font-family:Menlo;color:#333333">
</span><b><span style="font-family:Menlo;color:#073642"><o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><b><span style="font-family:Menlo;color:#073642">void</span></b><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#268BD2">main</span><span style="font-family:Menlo;color:#333333">(</span><b><span style="font-family:Menlo;color:#268BD2">String</span></b><span style="font-family:Menlo;color:#333333">[] args) {<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><br>
<br>
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><b><span style="font-family:Menlo;color:#268BD2">String</span></b><span style="font-family:Menlo;color:#333333"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">classesDir</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#859900"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#859900">=</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#2AA198">"/Users/liuyuan/Workspaces/testCFGbySoot/testCFGbySoot/target/classes/"</span><span style="font-family:Menlo;color:#333333">;<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><b><span style="font-family:Menlo;color:#268BD2">String</span></b><span style="font-family:Menlo;color:#333333"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">mainClass</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#859900"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#859900">=</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#2AA198">"org.yliu.test.soot.APP"</span><span style="font-family:Menlo;color:#333333">;<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><b><span style="font-family:Menlo;color:#268BD2">TypeReferenceSequencesSolver</span></b><span style="font-family:Menlo;color:#333333"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">analysis</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#859900"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#859900">=</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#859900">new</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#268BD2"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">TypeReferenceSequencesSolver</span><span style="font-family:Menlo;color:#333333">();<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><i><span style="font-family:Menlo;color:#93A1A1">//Options.v().set_prepend_classpath(true);</span></i><span style="font-family:Menlo;color:#333333"><o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">PackManager</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">getPack</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#2AA198">"wjtp"</span><span style="font-family:Menlo;color:#333333">).</span><span style="font-family:Menlo;color:#268BD2">add</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#859900">new</span><span style="font-family:Menlo;color:#333333"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">Transform</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#2AA198">"wjtp.TypeReferenceSequencesSolver"</span><span style="font-family:Menlo;color:#333333">,<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">analysis</span><span style="font-family:Menlo;color:#333333">));<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><b><span style="font-family:Menlo;color:#268BD2">String</span></b><span style="font-family:Menlo;color:#333333"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">jmodsPath</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#859900"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#859900">=</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#2AA198">"/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home/jmods"</span><span style="font-family:Menlo;color:#333333">;<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">Options</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">set_soot_classpath</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#2AA198">"VIRTUAL_FS_FOR_JDK"</span><span style="font-family:Menlo;color:#333333"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#859900">+</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#268BD2"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">File</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">pathSeparator</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#859900"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#859900">+</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#268BD2">jmodsPath</span><span style="font-family:Menlo;color:#333333">);<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><br>
<br>
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">Options</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">set_process_dir</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#268BD2">Arrays</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">asList</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#268BD2">classesDir</span><span style="font-family:Menlo;color:#333333">));<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">Options</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">set_whole_program</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#B58900">false</span><span style="font-family:Menlo;color:#333333">);<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">Options</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">setPhaseOption</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#2AA198">"jb"</span><span style="font-family:Menlo;color:#333333">,<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#2AA198">"preserve-source-annotations:true"</span><span style="font-family:Menlo;color:#333333">);<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">Options</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">setPhaseOption</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#2AA198">"jj"</span><span style="font-family:Menlo;color:#333333">,<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#2AA198">"use-original-names:true"</span><span style="font-family:Menlo;color:#333333">);<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">Options</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">set_keep_line_number</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#B58900">true</span><span style="font-family:Menlo;color:#333333">);<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><br>
<br>
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><b><span style="font-family:Menlo;color:#268BD2">SootClass</span></b><span style="font-family:Menlo;color:#333333"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">appclass</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#859900"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#859900">=</span><span style="font-family:Menlo;color:#333333">
</span><span style="font-family:Menlo;color:#268BD2">Scene</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">loadClassAndSupport</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#268BD2">mainClass</span><span style="font-family:Menlo;color:#333333">);<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">Scene</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">setMainClass</span><span style="font-family:Menlo;color:#333333">(</span><span style="font-family:Menlo;color:#268BD2">appclass</span><span style="font-family:Menlo;color:#333333">);<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">Scene</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">loadNecessaryClasses</span><span style="font-family:Menlo;color:#333333">();<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><br>
<br>
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#268BD2">PackManager</span><span style="font-family:Menlo;color:#333333">.</span><span style="font-family:Menlo;color:#268BD2">v</span><span style="font-family:Menlo;color:#333333">().</span><span style="font-family:Menlo;color:#268BD2">runPacks</span><span style="font-family:Menlo;color:#333333">();<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333">}<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height:13.5pt;background:#FDF6E3"><span style="font-family:Menlo;color:#333333"><o:p> </o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">2021<span style="font-family:"MS Gothic"">年</span>3<span style="font-family:"MS Gothic"">月</span>14<span style="font-family:"MS Gothic"">日</span> 06:20<span style="font-family:"MS Gothic"">,</span>Andreas Peter Dann <<a href="mailto:adann@mail.uni-paderborn.de">adann@mail.uni-paderborn.de</a>>
<span style="font-family:"MS Gothic"">写道:</span><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hi Yuan,<br>
<br>
thanks for your question. Unfortunately, the current documentation is not very clear on that topic because only a few people used Soot to analyze ByteCode for Java Version >= 9.<br>
At the end of the readme in the repo you'll find paragraph explaining how to run soot with Java >=9<br>
<a href="https://github.com/soot-oss/soot">https://github.com/soot-oss/soot</a><br>
<br>
In a nutshell,<br>
- please use the latest version from Maven Central https://soot-oss.github.io/soot/<br>
- run soot with a JDK >= 8 (maybe it works with an older JDK but I've never tested it)<br>
- if you want to run soot on JDK 8 but want to analyze the ByteCode of Java >=9 please run
<br>
<br>
java -cp soot-trunk.jar soot.Main -cp VIRTUAL_FS_FOR_JDK<br>
<br>
the string VIRTUAL_FS_FOR_JDK tells Soot to look into the virtual file system of JDKs >=9 to find the base classes.<br>
<br>
Please feel free to improve the current documentation by making a pull request.<br>
<br>
Best,<br>
<br>
Andreas<br>
---------<br>
<br>
Am 12.03.21, 01:20 schrieb "Soot-list im Auftrag von Liu Yuan" <soot-list-bounces@CS.McGill.CA im Auftrag von liuyuan@fastmail.com>:<br>
<br>
Hi, I have JDK16 installed, and using the following to create a CFG.<br>
<br>
But I get an exception Unsupported class file major version 60, for SootClass appclass = Scene.v().loadClassAndSupport(mainClass);<br>
<br>
I think soot can run in JDK 16, so the reason is that the class files to be analyzed is compied at a high JDK version.<br>
<br>
So is there any method to solve it? If not, what is the supported scope of the JDK compiled version for the class files?
<br>
<br>
Besides, JDK 9+ remove the rt.jar and ice.jar. After searching, I learned that I only need to set prepend_classpat to load the necessary classes for soot to run. I don't know if it is correct.
<br>
<br>
Any suggestion is appreciated, thank you.<br>
<br>
public static void main(String[] args) {<br>
<br>
String classesDir = "./input/dataset/tracker-server.jar";<br>
String mainClass = "org.traccar.Main";<br>
TypeReferenceSequencesSolver analysis = new TypeReferenceSequencesSolver();<br>
Options.v().set_prepend_classpath(true);<br>
PackManager.v().getPack("wjtp").add(new Transform("wjtp.TypeReferenceSequencesSolver", analysis));<br>
<br>
Options.v().set_process_dir(Arrays.asList(classesDir));<br>
Options.v().set_whole_program(false);<br>
Options.v().setPhaseOption("jb", "preserve-source-annotations:true");<br>
Options.v().setPhaseOption("jj", "use-original-names:true");<br>
Options.v().set_keep_line_number(true);<br>
<br>
SootClass appclass = Scene.v().loadClassAndSupport(mainClass);<br>
Scene.v().setMainClass(appclass);<br>
Scene.v().loadNecessaryClasses();<br>
<br>
PackManager.v().runPacks();<br>
}<br>
<br>
Best,<br>
Yuan<br>
_______________________________________________<br>
Soot-list mailing list<br>
Soot-list@CS.McGill.CA<br>
https://mailman.CS.McGill.CA/mailman/listinfo/soot-list<o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>