1

当我使用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 抱怨该文件不存在吗?

4

1 回答 1

-2

根据https://docs.oracle.com/javase/9​​/tools/javapackager.htm#JSWOR719-srcfiles应提供文件列表。lib是一个目录。我会尝试使用-srcdir.

另外,如果你得到

异常:java.lang.Exception:错误:srcfiles 中不允许使用模块

这意味着你必须使用--module-path,然后设置主模块使用-m <module name>

于 2018-05-30T22:16:24.363 回答