Modular Applications With Multi-Release JAR Files
If all of the following conditions are true for a multi-release JAR file:
>The multi-release JAR file is targeted to be executed with both:
•Java 8 and earlier, AND
• Java 9 and later
>The java code targeted for Java 9 and later is for both JPMS-based and conventional applications.
You must integrate the batch file or script file provided below into the application installer or ship the file with the protected applications.
For more information, see Modifying Execution Files for Applications That Use JPMS.
Batch File to Integrate for Windows
java -version > %temp%\jenvelopetemp.txt 2>&1
for /F "tokens=3 delims= " %%a in ('findstr /I "version" %temp%\jenvelopetemp.txt') do set "uniuser=%%~a"
set /a uniuser=%uniuser
if %uniuser% geq 9 (
java --module-path <module_path> --class-path
<java_envelope_generated_jars>; --add-reads <module_name>=ALL-UNNAMED
--add-exports <module_name>/<package_name>=ALL-UNNAMED
--module <module_name>/<package_name>.<class_name>.<main_method>
) else (
java -jar <app_name>
)
del %temp%\jenvelopetemp.txt
SH File to Integrate for Linux
#!/bin/bash
JAVA_VER=`java -version 2>&1 | grep version | awk -F'"' '{print $2}' | awk -F'.' '{print $1}'`
if [ $JAVA_VER -ge 9 ];then
java --module-path <module_path> --class-path
<java_envelope_generated_jars>; --add-reads <module_name>=ALL-UNNAMED
--add-exports <module_name>/<package_name>=ALL-UNNAMED
--module <module_name>/<package_name>.<class_name>.<main_method>
else
java -jar <app_name>
fi
exit 0
Related Topics
Modifying Execution Files for Applications That Use JPMS
Java Prerequisites and Considerations
