You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# SootDiff - Bytecode Comparison Across Different Java Compilers
2
4
3
-
This repository hosts the SootDiff analysis tool. SootDiff allows the comparison of the Java ByteCode create by different Java compilers.
4
-
To do so it uses static analysis and optimizations to unify the generated ByteCode, e.g. Constant Propagation, Dead Code Elimination, String Handling. Its goal is to provide researchers and practitioners with a tool and library on which they can base their own research projects and product implementations.
5
+
This repository hosts the SootDiff analysis tool. SootDiff allows the comparison of the Java ByteCode create by
6
+
different Java compilers. To do so it uses static analysis and optimizations to unify the generated ByteCode, e.g.
7
+
Constant Propagation, Dead Code Elimination, String Handling. Its goal is to provide researchers and practitioners with
8
+
a tool and library on which they can base their own research projects and product implementations.
5
9
6
10
## Obtaining SootDiff
11
+
7
12
You can either build SootDiff on your own using Maven, or you can download a release from here on Github.
8
13
9
14
### Downloading the Release
10
-
The Release Page contains all pre-built JAR files for each release that we officially publish. We recommend using the latest and greatest version unless you have a specific issue that prevents you from doing so. In that case, please let us know.
11
15
16
+
The Release Page contains all pre-built JAR files for each release that we officially publish. We recommend using the
17
+
latest and greatest version unless you have a specific issue that prevents you from doing so. In that case, please let
18
+
us know.
12
19
13
20
### Building SootDiff with Maven
21
+
14
22
To build SootDiff with Maven run
15
23
```
16
24
mvn install
@@ -21,11 +29,24 @@ or to build a standalone `jar-with-dependencies` run
21
29
mvn clean compile assembly:single
22
30
```
23
31
24
-
25
32
## Publications
26
-
If you want to read the details on how SootDiff works, the published paper [SootDiff @SOAP'19,Phoenix, AZ, USA](https://dl.acm.org/citation.cfm?id=3329966) is a good place to start.
27
-
28
33
34
+
If you want to read the details on how SootDiff works, the published
35
+
paper [SootDiff @SOAP'19,Phoenix, AZ, USA](https://dl.acm.org/citation.cfm?id=3329966) is a good place to start.
29
36
30
37
## License
31
-
SootDiff is licensed under the MIT license, see LICENSE file. This basically means that you are free to use the tool (even in commercial, closed-source projects).
38
+
39
+
SootDiff is licensed under the MIT license, see LICENSE file. This basically means that you are free to use the tool (
40
+
even in commercial, closed-source projects).
41
+
42
+
# Use SootDiff to compare Jars
43
+
44
+
The class `src/test/java/MainCompareArtifacts.java` can be used to compare multiple jars on the basis of class sha,tlshs
45
+
and timestamps and produces a markdown report of that.
46
+
47
+
Invoke the main method with parameters `-inJars jar1,jar2,jar3 -fileFilter pathToFilterFile.txt`
48
+
49
+
The filter file can be used to specify classes of interest (e.g. classes fixed in a fixing commit). Make sure to specify
50
+
the files as they would be located in the analyzed jar, e.g., in a commit the change might be related
51
+
to `src/main/java/pack/a/b.java`, in the jar it would be referenced from the package onwards and in class
0 commit comments