java - .WAR 文件之外的属性文件

标签 java

我需要能够读取位于我的 war 之外的属性文件。我的问题是需要一个解决方案,让我可以告诉我的 war 文件我的属性文件所在的位置。这可以通过 bashrc 变量和 windows 环境变量来完成吗?

我需要这样做,因为我需要能够将属性文件拖放到可能远离 war 文件的不同位置。

我正在努力想出一个解决方案。

最佳答案

这很大程度上取决于属性文件的用途。有些库可以在命令行上设置它,而其他库则允许您在代码中显式加载它们。

对于后者,System.getProperties() 可能会很有帮助,因为它允许您使用“-D”标志读取传递给 JVM 的属性。例如

java -jar -Dfilelocation="yourfilelocation" yourapp.jar

将使用字符串“yourfilelocation”填充系统属性“filelocation”。然后可以在您的代码中使用它来加载属性文件(或您想要用它执行的任何操作)。

由于您在某种应用程序服务器内运行,因此可以采用不同的方法来实现此目的。对于jetty,您可以将它们放在start.ini中(或者只是在启动jetty时在命令行上传递它们)

其中tomcat使用名为JAVA_OPTS的环境变量,因此

JAVA_OPTS='-Dfilelocation=yourfilelocation' start.sh

启动 tomcat 时会设置系统属性。

关于java - .WAR 文件之外的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15774674/

相关文章:

java 使用不同的 JDK 版本构建 : same artifacts?

java - 我们如何获得有关系统剪贴板事件的通知?

java - onCreateLoader 和 onLoadFinished 不同步

java - Java 中的随机化

Java 重用列表来填充 HashMap 的问题

Java - 替换所有非 ASCII 但保留 HTML 特殊字符

java - 有没有办法分离出异常原因中提供的信息?

java - BigDecimal 到 Java/Android 上 BigDecimal 的强大功能

java - 从图库中选择图像后如何调整图像大小?

Java倒置数组