J'essaie java 9-ea (jdk-9 + 180) et le nouveau javapackager pour créer une image native à partir d'un module simple mais je reçois une exception nullpointer. Est-ce que quelqu'un sait si je suis juste trop tôt ou si je n'utilise pas les bons commutateurs de commande afin de le faire fonctionner? La commande jlink fonctionne bien, mais pas le javapackager. J'utilise le dernier jdk-9 + 180 au moment de l'écriture. J'ai essayé les deux avec les commutateurs -native exe
et -native image
mais le même type d'erreur se produit. J'ai également essayé ceci sur mon Mac créant un dmg natif avec le commutateur -native dmg
, mais la même erreur se produit sur cette plate-forme. Je suis vraiment après avoir utilisé le javapackager ici pour être en mesure de regrouper la construction dans exe/dmg
.Erreur lors de la tentative d'empaquetage de l'image native avec javapackager dans java 9-ea?
Edit 1: J'ai déposé un rapport de bogue sur cette question et il peut maintenant être visible à l'adresse suivante: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8186661
Mon module-info.java:
module my.module {
requires javafx.graphics;
requires javafx.fxml;
exports sample;
}
Première Je crée un pot avec javapackager qui fonctionne très bien:
C:\Java9Test\target>javapackager -createjar -appclass sample.Main -srcdir classes -outdir . -outfile myjar -v
J'ai vérifié que la structure de jar qui en résulte semble correcte avec le module-info.class
correct et les deux autres classes dedans.
Les travaux de commande JLINK suivantes et produit une image d'exécution réduite runnable:
C:\Java9Test\target>jlink --output release\MyTestApp --compress=2 --module-path "myjar.jar;C:\Program Files\Java\jdk-9\jmods" --add-modules my.module
Cependant, lorsque vous essayez la commande suivante pour créer l'image native en utilisant javapackager échoue:
C:\Java9Test\target>javapackager -deploy -v -outdir packages -name MyTestApp -native image --module-path "myjar.jar;C:\Program Files\Java\jdk-9\jmods" --add-modules my.module --module my.module/sample.Main
sorties:
Running [C:\Program Files\Java\jdk-9\bin\java.exe, -version] Creating app bundle: MyTestApp in C:\Java9Test\target\packages Exception: java.lang.NullPointerException Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "Windows Application Image" (windows.app) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)
Edit 2:
sortie de -native exe
drapeau (sous Windows)
Running [C:\Program Files\Java\jdk-9\bin\java.exe, -version] Running [C:\Program Files (x86)\Inno Setup 5\iscc.exe, /?] Detected [C:\Program Files (x86)\Inno Setup 5\iscc.exe] version [5] At least one type of shortcut is required. Enabling menu shortcut. Exception: java.lang.NullPointerException Config files are saved to C:\Users\Username\AppData\Local\Temp\fxbundler17330843784617821035\windows. Use them to customize package. Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "EXE Installer" (exe) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)
Edit 3:
sortie de -native dmg
pavillon (sur MacOSX)
Building DMG package for MyTestApp Exception: java.lang.NullPointerException Config files are saved to /var/folders/qs/nk3vxsx90q9_pbjs0ypg74r40000gn/T/fxbundler3765252041328710759/macosx. Use them to customize package. Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "DMG Installer" (dmg) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)
sortie de -native deb
drapeau (Linux Mint)
Running [dpkg-deb, --version] Debian packages should specify a license. The absence of a license will cause some linux distributions to complain about the quality of the application. Exception: java.lang.NullPointerException Config files are saved to /tmp/fxbundler2941553392593775128/linux. Use them to customize package. Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "DEB Installer" (deb) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)
sortie de -native rpm
drapeau (Linux Mint)
Running [rpmbuild, --version] At least one type of shortcut is required. Enabling menu shortcut. Exception: java.lang.NullPointerException Config files are saved to /tmp/fxbundler2278571164448075269/linux. Use them to customize package. Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "RPM Bundle" (rpm) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)
Avez-vous installé Inno Setup 5 et est-il disponible via PATH? Vérifiez le paragraphe 7.4.1 ici http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html – madduci
Oui, j'ai et maintenant ajouté "edit 2" où vous pouvez voir la sortie de courir avec -native exe drapeau au lieu de -native image. L'erreur ne semble pas être liée à InnoSetup. NullPointerException sur la même ligne quel que soit l'indicateur utilisé (image/exe/dmg/deb/rpm). J'ai rapporté un bug à Oracle ... – jbilander
cela ressemble à un bug sur Windows. Sur Linux, la même commande peut générer des deb, rpm, images. BTW, vous pouvez construire un paquet uniquement sur des systèmes spécifiques (par exemple, DEB/RPM uniquement sur Linux, EXE/MSI uniquement sur Windows, DMG uniquement sur Mac) – madduci