"原发性" (Jigsawed)没有模块化代码的Java 9 JRE

时间:2018-01-02 12:11:15

标签: java jigsaw

我们有一个不使用AWT / Swing / JavaFX的Java应用程序,并且可以与私有捆绑的JRE 8一起使用.JRE 9比JRE 8大得多,但是我们希望让用户使用JRE 9来尝试我们的应用程序。我们还不想模块化我们的代码或jar(以保持与Java 8的兼容性)。

如何创建"必要" (=剥离到最小的必需部分),可以与Java应用程序捆绑在一起的私有JRE 9?

1 个答案:

答案 0 :(得分:4)

可以创建JRE的自定义运行时映像,而无需将应用程序本身转换为Java 9模块。首先,我们需要找出需要哪些模块(JDK / JRE):

"C:\Program Files\Java\jdk-9.0.1\bin\jdeps.exe"
                 -s
                 "C:\path\to\my\jars\*.jar"

然后我们可以创建一个轻量级jre目录结构(将 java.logging,java.xml 替换为您的应用程序所需的模块):

"C:\Program Files\Java\jdk-9.0.1\bin\jlink.exe"
                 --module-path "C:\Program Files\Java\jdk-9.0.1\jmods"
                 --add-modules java.logging,java.xml
                 --output "e:\myproject\jre"