在 Eclipse 中构建可执行 jar 时如何排除属性?

Posted

技术标签:

【中文标题】在 Eclipse 中构建可执行 jar 时如何排除属性?【英文标题】:How exlude properties when building executable jar in Eclipse? 【发布时间】:2014-05-14 04:53:45 【问题描述】:

此问题之前已在此处讨论过,但我能找到的唯一解决方案与使用 Ant 或 Maven 的项目有关。我都没有使用。情况如下:

我在属性文件中有一些应用程序参数。该文件位于我的 Eclipse 项目中(但在 src 文件夹中),并在我从 Eclipse 运行应用程序时使用。此外,我希望应用程序也作为可执行 jar 文件运行,在这种情况下,用户可以提供属性文件的名称以在命令行参数中使用。

现在的问题是项目中的属性文件总是打包到可执行 jar 中,因此用户无法轻松修改属性(是的,我知道他可以解压缩 jar,但我想要避免额外的步骤)。

如何防止属性被打包到可执行的 jar 文件中?

干杯,

马丁

【问题讨论】:

你是如何构建的?通过 Eclipse? 【参考方案1】:

创建一个没有属性文件的可执行jar。将 jar 和属性文件都放在一个文件夹中。现在在你的主程序中添加一些代码,它应该在同一文件夹中查找属性文件并获取它的完整路径。然后你可以做这样的事情

System.getProperties().load(new FileInputStream(completepath));

所以现在您的属性将被加载到系统属性中,而不会影响实际的系统属性。您可以通过System.getProperty("Propertyname");访问您的房产

希望这会有所帮助。如果您还有其他问题,请告诉我。

【讨论】:

您好 Sri777,非常感谢您的回复。这工作得很好。我无法从可执行 JAR 中完全排除现有的属性文件,但这没关系,因为它们可以被覆盖给你的解决方案。 请注意,运行 JAR 的基本路径可以通过以下方式选择:(new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath())) .getAbsolutePath();

以上是关于在 Eclipse 中构建可执行 jar 时如何排除属性?的主要内容,如果未能解决你的问题,请参考以下文章

eclipse生成带有外部jar包的java可执行jar包

JAVA生成(可执行)Jar包的全面详解说明 [打包][SpringBoot][Eclipse][IDEA][Maven][Gradle][分离][可执行]

导出的 (Eclipse) 可执行 jar 文件中的 UnsatisfiedLinkError

eclipse 导出可执行jar文件

如何在 Java 可执行文件 .jar 中启动多个主程序?

jenkins 执行可执行jar包测试中,请求乱码解决办法