【发布时间】:2012-01-08 05:08:34
【问题描述】:
如果我有一个包含几种不同类型的文件(图片、声音等)和多个 jar 依赖项的 java 项目,那么将它们全部打包到一个可以双击的单个 jar 中的好方法是什么?
我知道 jars 本身非常愚蠢,因为它们不会在自己内部寻找它们所依赖的文件(这是我在一点点挫折之后才意识到的(轻描淡写))。 -- 如果 jar A 依赖于 jar B 中包含的类,则将 jar B 放入 jar A 将不起作用。 jar A 必须与 jar B 位于同一目录中。
...现在,我知道我可以从所有其他 jar 中提取所有文件并将所有内容放在同一目录中。这会有点工作,但我不想这样做,因为:1。它会很乱,2。它仍然不能解决需要将声音文件放在与最终 jar 相同的目录。 (无论出于何种原因,声音文件的行为方式与内部 jar 完全相同)
基本上,我只是想让我的应用程序所依赖的文件不会令人讨厌地可见和炫耀。因此,如果有一些解决方案可以让我将所有内容都放在一个 jar 中,并让它成为运行整个程序的唯一必要文件,那将是最佳选择。但是,我愿意接受创造性/创造性的方法来绕过问题,例如在父目录中使用批处理脚本执行 jar 或其他东西。 (我说“或某事”是因为那个确切的场景只适用于 Windows 操作系统。...你知道我的意思!)
【问题讨论】:
-
您如何访问您的资源(声音文件等)?作为文件还是作为 getResource()?
-
我将他们的文件名传递给 File 对象
标签: java jar executable