首页 > 解决方案 > 在构建的 JAR 之外指定 jndi.properties 位置

问题描述

我正在使用 Intellij。

我有一个 jndi.properties 文件(用于连接到 Wildfly 实例)。

默认情况下,Maven 在构建后将此文件包含在 JAR 中。这不好,因为 jndi.properties 包含 Wildfly 实例的 URL 和凭据,并且在生产中它们会有所不同。

我设法通过将 jndi.properties 文件放在一个单独的文件夹(称为 config)中来排除它,然后在 Intellij -> Module Settings -> Sources 中,我将 config 文件夹标记为 Resources 和 Excluded。这样,当我在 Intellij 中运行应用程序时,它工作正常。但是当我构建 JAR 时,即使我在 JAR 之外放置了一个名为 config 的文件夹,我仍然会收到异常,因为在类路径中找不到 jndi.properties 文件。

如果我在“模块设置”的“依赖项”选项卡中声明配置文件夹,也会发生同样的情况。

我也尝试在运行 java cmd line 工具时指定类路径,但似乎 -cp 不能与 -jar 一起使用。

我知道两种选择,但我不太喜欢它们:在 JAVA_HOME/lib 中有 jndi.properties(不好,它对所有应用程序都很常见)或在运行时(-Djava.naming.provider.url 等,而不是我认为清除为配置文件)。

有什么方法可以在运行时指定 jndi.properties 文件位置吗?

标签: javaintellij-ideajndi

解决方案


推荐阅读