sat-adapter
is a tool used to bridge the sat tool and the AppCDS, AOT, and Pre-initialize features of OpenJDK.
Because these features are designed independently and depend on different inputs:
- AppCDS: A list containing class id, dependency information, and interfaces
- AOT: A list of methods that need to be compiled
- Pre-initialize: A list of classes that can be safely initialized
The sat-adapter
converts the json output generated by sat
into the input file of each feature mentioned above.
Here is a sample json data:
[
{
"className": "Ljava/io/EOFException;",
"source": "/java.base/java/io/EOFException.class",
"super": "Ljava/io/IOException;",
"interfaces": [],
"safeForPreinit": "true",
"invokedMethods": [
"<init>()V",
"<init>(Ljava/lang/String;)V"
]
}
]
Build:
mvn clean package
# or native image
mvn clean package -P native-image
Usage:
java -jar sat-adapter.jar --input input.json\
--aot compile-command.txt\
--appcds classlist\
--preinit preinit-classes.txt
# or native image
./sat-adapter --input input.json # other paramaters