我制作了一个项目,其中包含一些 java 文件、一个包含一些图像的图像文件夹和一个包含一些文本文件的数据文件夹。当我编译程序并通过终端运行它时,一切正常。我决定尝试将其转换为 jar 文件,因此经过大量研究后,我设法做到了,包括使用清单文件。这是我在终端中输入的内容:
jar cvfm Program.jar manifest.txt *.class images data
给出这个输出:
added manifest
adding: a.class (in = 500) (out = 500) (deflated 50%)
adding: b.class (in = 500) (out = 500) (deflated 50%)
adding: images/ (in = 0) (out = 0) (stored 0%)
adding: images/a.png (in = 500) (out = 500) (deflated 50%)
adding: images/b.png (in = 500) (out = 500) (deflated 50%)
adding: data/ (in = 0) (out = 0) (stored 0%)
adding: data/a.txt (in = 500) (out = 500) (deflated 50%)
唯一突出的行是图像/和数据/,它们的输入、输出、存储=0。
这有效,它在 jar 文件中正确列出了所有文件。jar 文件在程序的正确目录中甚至可以完美运行,但是如果我从该目录中删除它,它就再也找不到任何资源文件(图像和数据),我不知道为什么。这可能是我在代码中引用它们的一种方式,或者资源文件没有正确附加,但我不太确定。我的清单文件包括:
Manifest-Version: 1.0
Main-Class: Strike
任何帮助,将不胜感激。