我的可执行 jar 会包含我在文件结构中添加的文件吗?

Will my executable jar include files I added in the file structure?

我正在尝试理解创建可执行 jar 和文件路径的工作原理,所以请多多包涵。

我有一个小程序,应该上传一些固件到服务器。这些固件的总大小约为 650MB。总而言之,项目文件夹占用约 2.2GB space.

在程序本身中,我有一些字符串引用包含固件的文件夹的名称。

"src\com\java\myProgram\data\bios_fw\"+biosFWPath+"\"+biosFW

在 IDE 中测试时,这没有问题。

所以这是我的问题:如果我将程序构建为可执行 jar,这仍然有效吗?我已经注意到我创建的 jar 文件只有大约 450MB。那它甚至包含固件吗?如果是,程序是否能够找到指定的路径?

此外,在用户 PC 上“安装”这些文件夹和 jar 文件的正确方法是什么?

谢谢!

由于 .jar 文件是 java 归档文件,您可以打开它并自行查看,因为我们不知道您是如何构建 .jar 的。 但考虑到未来,我会删除绝对路径并使用相对路径到一个目录,您可以在其中插入固件以防固件更新,这样您就不必每次都构建程序。

当您想在项目中保留 FW 时,正确的方法是使用 ClassLoader。