【问题标题】:Jar file contains a duplicate of every imageJar 文件包含每个图像的副本
【发布时间】:2017-06-30 03:50:07
【问题描述】:

我正在使用 Intellij Idea 生成我的 jar 文件,它可以工作。然而,我把罐子拿出来看看为什么它的尺寸比预期的要大得多。我找到了resources 目录,其中包含我所有的图像,正如预期的那样,但是......由于某种原因,在resources 目录之外,当你第一次打开提取的jar 时,在'main'文件夹中,所有图像都再次出现..重复。这并不反映我的项目结构或任何东西,我唯一有图像的地方是resources。任何人都知道发生了什么,以及如何阻止这种情况?

项目结构:

【问题讨论】:

    标签: java intellij-idea jar executable-jar


    【解决方案1】:

    检查 jar artifact configuration,确保它没有设置为将 resources 目录的内容打包到 jar 中(只需编译器输出条目就足够了,因为它已经包含资源)。

    如果不是这样,请检查项目的输出目录。 resources 目录中的文件应该存在于输出目录的根目录中。如果有resources子目录,删除它并重建项目,确保它不会再次出现在输出中。

    如果重建后模块输出中出现resources 子目录,请验证模块根配置。可能是resources 上面的目录本身被配置为资源(或源)。

    如果您无法找出问题所在,请分享一个完整的示例项目来说明它,我会指出您应该更改的确切配置。

    【讨论】:

    • 如何判断工件配置是否设置为将资源的内容打包到 jar 中? “输出布局”选项卡中只有两件事,MyProject.jar 及其下方的“MyProject”编译输出。
    • 那么您应该按照答案中的说明检查编译器输出。
    • 好吧,由于某种原因,这似乎是默认设置的。源根应该是别的东西,还是我应该撤消它?
    • 源根目录应该只是你的src 目录,而不是它上面的任何东西。您应该仅将 Java 文件的根目录标记为 Source(默认包目录,在您的屏幕截图中为 src)。
    • 好的.. 它导致了各种导入问题(例如,Monopoly.aVariable 停止工作,并且 alt-enter 正确导入它变成了 src.Monopoly.aVariable.. 和 ' src' 部分现在显示错误无法识别.. 所以我现在不确定如何从同一文件夹中的类导入)但我会尝试弄清楚..
    猜你喜欢
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 2023-04-04
    • 2013-01-03
    相关资源
    最近更新 更多