Javapackager — NoSuchFileException при копировании библиотек JDK 9

Когда я использую команду javapacker, я получаю NoSuchFileException, когда он должен скопировать библиотеки в папку приложения. Я запускаю следующую команду:

javapackager -deploy -nosign -v -native image -name test 
-appclass test.Test 
-srcdir "E:\projects\test\target"
-srcfiles test-1.0.jar;lib
-outdir "E:\projects\test\target\dist"

Все работает нормально, но я получаю исключение NoSuchFileException внутри вывода, а библиотеки в папке lib отсутствуют (не скопированы).

Running [D:\Java64\jdk-9.0.4\bin\java.exe, -version]
Creating app bundle: test in E:\projects\test\target\dist
"Adding modules: [java.rmi, java.sql, javafx.web, ... long list ... 
outputDir = E:\projects\test\target\dist\test\runtime
modulePath = [D:\Java64\jdk-9.0.4\jmods]
addModules = [java.rmi, java.sql, javafx.web, ... long list ...
limitModules = []
excludeFileList = .*\.diz
stripNativeCommands = true
userArguments = {}
Using default package resource [icon]  (add package/windows/test.ico to the class path to customize)
Using default package resource [Template for creating executable properties file.]  (add package/windows\test.properties to the class path to customize)
Running [D:\Java64\jdk-9.0.4\bin\javapackager.exe, --icon-swap, C:\Users\XXX\AppData\Local\Temp\fxbundler15945263774290817340\windows\test.ico, E:\projects\test\target\dist\test\test.exe]
Icon File Name: C:\Users\XXX\AppData\Local\Temp\fxbundler15945263774290817340\windows\test.ico
Executable File Name: E:\projects\test\target\dist\test\test.exe
Running [D:\Java64\jdk-9.0.4\bin\javapackager.exe, --version-swap, C:\Users\XXX\AppData\Local\Temp\fxbundler15945263774290817340\windows\test.properties, E:\projects\test\target\dist\test\test.exe]
Resource File Name: C:\Users\XXX\AppData\Local\Temp\fxbundler15945263774290817340\windows\test.properties
Executable File Name: E:\projects\test\target\dist\test\test.exe
Exception: java.nio.file.NoSuchFileException: E:\projects\test\target\lib\animal-sniffer-annotations-1.14.jar -> E:\projects\test\target\dist\test\app\lib\animal-sniffer-annotations-1.14.jar
Config files are saved to C:\Users\XXX\AppData\Local\Temp\fxbundler15945263774290817340\windows. Use them to customize package.
Result application bundle: E:\projects\test\target\dist

Я не знаю, что пытается сказать мне следующая строка вывода. Файл явно существует в моей папке lib, и javapackager сам нашел его, заглянув в папку lib, которую я предоставил с аргументом -srcfiles test-1.0.jar;lib.

Exception: java.nio.file.NoSuchFileException: E:\projects\test\target\lib\animal-sniffer-annotations-1.14.jar -> E:\projects\test\target\dist\test\app\lib\animal-sniffer-annotations-1.14.jar

Любая идея, почему javapacker жалуется, что файл не существует?


person tobain    schedule 16.03.2018    source источник


Ответы (1)


Согласно https://docs.oracle.com/javase/9/tools/javapackager.htm#JSWOR719, -srcfiles должен быть предоставлен список файлов. lib — это каталог. Я бы попробовал использовать -srcdir.

Кроме того, если вы получите

Исключение: java.lang.Exception: Ошибка: модули не допускаются в srcfiles

это означает, что вы должны использовать --module-path, а затем установить основной модуль, используя -m <module name>

person robot_rover    schedule 30.05.2018