I am trying to reduce the size of my application by limiting the modules that it includes. I have already done this for my runtime using jlink . However, when I run javapackager using the javapackager --add-modules and --limit-modules options with a comma separated list of the same small set of modules that I used for the runtime, it still insists on adding all the modules. It seems that he does not want to respect the option that I give him. How can I get a tool to restrict the modules that it adds to my application package?
"Adding modules: [java.base, java.desktop, java.naming, java.sql, java.xml, java.logging, java.management, java.scripting, java.compiler, java.rmi, java.activation, jdk.charsets, jdk.xml.dom, java.datatransfer, jdk.httpserver, javafx.base, java.security.sasl, jdk.zipfs, jdk.crypto.ec, jdk.management.agent, java.sql.rowset, javafx.swing, jdk.jsobject, jdk.sctp, java.smartcardio, jdk.unsupported, jdk.scripting.nashorn, java.security.jgss, javafx.graphics, javafx.fxml, jdk.dynalink, javafx.media, jdk.accessibility, jdk.security.jgss, javafx.web, java.xml.crypto, jdk.jfr, jdk.packager.services, jdk.net, javafx.controls, java.prefs, jdk.naming.rmi, jdk.jdwp.agent, java.instrument, jdk.management, jdk.security.auth, java.management.rmi, jdk.naming.dns, jdk.localedata] to runtime image." outputDir = ... modulePath = [/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/jmods] addModules = [java.base, java.desktop, java.naming, java.sql, java.xml, java.logging, java.management, java.scripting, java.compiler, java.rmi, java.activation, jdk.charsets, jdk.xml.dom, java.datatransfer, jdk.httpserver, javafx.base, java.security.sasl, jdk.zipfs, jdk.crypto.ec, jdk.management.agent, java.sql.rowset, javafx.swing, jdk.jsobject, jdk.sctp, java.smartcardio, jdk.unsupported, jdk.scripting.nashorn, java.security.jgss, javafx.graphics, javafx.fxml, jdk.dynalink, javafx.media, jdk.accessibility, jdk.security.jgss, javafx.web, java.xml.crypto, jdk.jfr, jdk.packager.services, jdk.net, javafx.controls, java.prefs, jdk.naming.rmi, jdk.jdwp.agent, java.instrument, jdk.management, jdk.security.auth, java.management.rmi, jdk.naming.dns, jdk.localedata] limitModules = [java.base, java.desktop, java.naming, java.sql, java.xml, java.logging, java.management, java.scripting, java.compiler, java.rmi, java.activation]
Here is the command I am running with replacing some things like username:
/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin/javapackager -deploy -native image \ -name Commander -title Commander -vendor "username" \ -appclass com.username.commander.ui.AppWindow \ -srcdir /Users/username/Dropbox/coding/commander/Commander-java/packageJars \ -outdir /Users/username/Dropbox/coding/commander/Commander-java/target \ -outfile Commander \ -Bruntime=target/jre-9.0.1 -Bicon=src/main/resources/icons/commander.icns \ -BappVersion=1.0 \ -Bmac.CFBundleIdentifier=com.username.Commander \ -BmainJar=commander-0.0.1-SNAPSHOT-jar-with-dependencies.jar \ --add-modules java.base,java.desktop,java.naming,java.sql,java.xml,java.logging,java.management,java.scripting,java.compiler,java.rmi,java.activation \ --limit-modules java.base,java.desktop,java.naming,java.sql,java.xml,java.logging,java.management,java.scripting,java.compiler,java.rmi,java.activation \ -nosign -v