JPackage- 我应该将 Windows 应用程序图像的资源文件夹放在哪里?

JPackage- Where should I put resources folder for my Windows app image?

在我制作的 application 中,我将我的资源文件放入一个文件夹(名为 YoutubeAudioAutoDownloader-resources),并确保当我将该文件夹放在我的应用程序的 .jar 文件旁边时它可以正常工作。

并且当我使用 jpackage 使用以下 cmd 代码制作 exe 安装程序时:(由于我糟糕的目录安排,对于脏代码感到抱歉,我只想强调的部分是 --type--resource-dir 选项)

set jh=D:\development\jdk-14\bin
set appname=YoutubeAudioAutoDownloader v1.2.2
pushd %jh%

jpackage --type app-image --name "%appname%" --input "%~dp0packaging\jar" --dest "%~dp0packaging" --main-jar "YoutubeAudioAutoDownloader v1.2.2.jar" --main-class "com.awidesky.YoutubeClipboardAutoDownloader.Main" --resource-dir "%~dp0release.v1.2.1\YoutubeAudioAutoDownloader-resources" --icon "%~dp0icon\icon.ico

pause

我有问题:

我应该把我的 YoutubeAudioAutoDownloader-resources 文件夹放在哪里? 在我的应用程序图像文件夹的 app 文件夹中?或者我不必因为 --resource-dir 选项而做? (我不确定我是否正确了解该选项)

jpackage 中的 --resource-dir 参数用于更改应用程序 EXE 的资源,例如图标等,但听起来您实际上希望本地资源由您自己的 classes 使用 myClass.getClassLoader().getResourceAsStream("somerespath.xyz").

我认为 JDK14 jpackage 没有提供指定本地资源目录以添加到 运行 jpackage EXE 的 class 路径的方法。但它确实添加了 jars,因此如果您将所有资源目录与一个简单的 Java class 一起捆绑到一个 jar 中,比如 MyNewClass 您可以通过以下方式找到资源:

MyNewClass.class.getClassLoader().getResourceAsStream("pathto/aresource.xyz");

这个新的 jar 需要与您的其他 jar 一起使用,所以它是用 --input "%~dp0packaging\jar" 拾取的,然后每个启动器 EXE app/xyz.cfg 的 classpath 字段应该引用额外资源 jar.