英文:
JPackage- Where should I put resources folder for my Windows app image?
问题
在我制作的一个应用程序中,我将资源文件放入一个名为YoutubeAudioAutoDownloader-resources
的文件夹中,并确保当我将该文件夹放在我的应用程序的.jar文件旁边时,它能够正常工作。
当我使用以下命令代码使用jpackage
制作一个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
选项,我不需要做任何操作?(我不确定我是否正确了解了该选项)
英文:
In a application I made, I put my resources files to a folder(named YoutubeAudioAutoDownloader-resources
) and made sure it worked when i put the folder next to .jar file of my app.
And When I use jpackage
to make a exe installer with following cmd code: (sorry for dirty code because of my terrible directory arrangement, only part I want to stress is --type
and --resource-dir
options)
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
I got question:
Where should I put my YoutubeAudioAutoDownloader-resources
folder? in app
folder of my app image folder? or I don't have to do because of --resource-dir
option? (I'm not sure whether I even know correctly about the option)
答案1
得分: 1
--resource-dir
参数在jpackage中用于更改应用程序EXE的资源,如图标等,但听起来实际上您想要通过myClass.getClassLoader().getResourceAsStream("somerespath.xyz")
访问自己类中的本地资源。
我认为JDK 14的jpackage没有提供一种指定本地资源目录并添加到运行的jpackage EXE类路径的方法。但它确实会添加JAR文件,因此如果您将所有资源目录与一个简单的Java类(比如MyNewClass
)一起打包到一个JAR文件中,您可以使用以下方式定位资源:
MyNewClass.class.getClassLoader().getResourceAsStream("pathto/aresource.xyz");
这个新的JAR文件需要与其他JAR文件一起,所以它会被--input "%~dp0packaging\jar"
捆绑在一起,然后每个启动器EXE的app/xyz.cfg
的类路径字段应该引用额外的资源JAR文件。
英文:
The --resource-dir
parameter in jpackage is for changing the resources of the application EXE such as icons etc but it sounds like you actually want local resources accessed by your own classes with myClass.getClassLoader().getResourceAsStream("somerespath.xyz")
.
I don't think JDK14 jpackage gives a way to specify a local resources directory to add to the classpath of the running jpackage EXE. But it does add jars so if you bundle all of your resources directory into a jar along with a simple Java class say MyNewClass
you could locate the resources with:
MyNewClass.class.getClassLoader().getResourceAsStream("pathto/aresource.xyz");
This new jar would need to be with your other jars so it is picked up with --input "%~dp0packaging\jar"
and then the classpath field of each launcher EXEs app/xyz.cfg
should refer to the extra resources jar.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论