【问题标题】:Should I put my images inside the JAR or leave them out of it ? (Inno Setup)我应该把我的图像放在 JAR 里还是把它们放在外面? (创新设置)
【发布时间】:2017-12-14 16:51:16
【问题描述】:

所以我用Java做了一个简单的游戏。我有我的 Jar 文件,里面保存着我的照片。就像很多照片在那里发生一样。比如大约 9 MB 的 140 多张图片(主要是图标)(不担心效率,游戏已经运行得相当流畅了)。现在我将我的 jar 文件打包成一个 .exe,然后使用 Inno Setup 来制作一个安装文件。问题是我在 Program Files 中创建了一个只有 application.exe 文件和卸载文件的文件夹。这在我看来有点模糊和不专业。当然,虽然我已经看到伟大的游戏的所有图标都在可执行文件之外,但只是想知道将图像保留在内部还是外部是一个好习惯? 欢迎提出建议:D

【问题讨论】:

  • 好吧,如果你正在制作一个 exe,它们几乎必须被淘汰。从这个意义上说,大多数游戏都有图像,但有一个 .exe 的快捷方式,所以它看起来并不专业
  • @Treyten 我没有对此进行深入研究,但我猜“大”游戏会保留图像和其他数据,因为拥有 500MB 甚至更多的 exe 文件是不切实际的。无论如何,我想对这个问题发表一些意见,我想我得到了这个问题的答案。竖起大拇指

标签: java text installation inno-setup exe


【解决方案1】:

我更喜欢将图像和其他资源保存在 JAR 文件中。您不希望用户更改它们中的任何一个,就像程序类一样。所以我不明白为什么与类相比,你应该有不同的图像存储空间。

最强大和最简单(这应该是“专业”的含义)设置是将整个程序及其所有先决条件放在一个文件中 - 要么它在那里并且可以工作,要么它丢失了,你会立即看到。无需检查数十个子目录和文件的存在和可访问性。

当你问这个问题时,你肯定设法从类路径中读取图像,从而允许将它们与类文件一起存储,例如在一个 JAR 中。

关于包装在 EXE 中,这不应该有什么不同:如果 ClassLoader 找到类,它肯定会以相同的方式找到图像。甚至 Ahead-Of-Time-Compilers 也支持 getResourceAsStream()(我们已经使用 Excelsior Jet 做到了这一点)。

【讨论】:

  • “整个程序及其所有先决条件都在一个文件中”-我对这句话有点模棱两可。我觉得程序肯定也应该只是一个文件,但是如果将所有内容放在一个文件中会在最坏的情况下导致一个超大文件 - 假设那里有很多图片和数据。好吧,“它要么工作或丢失的东西”也让我想到,因为我可以更改或删除程序文件中 Photoshop 文件夹中的一些文件,它很可能会造成一些损害:/但感谢您的回答,但我会等着看其他意见跨度>
猜你喜欢
  • 1970-01-01
  • 2011-06-10
  • 2021-07-22
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 2011-02-23
  • 2016-08-25
相关资源
最近更新 更多