使用可执行jar时,将配置文件加载到类路径中

时间:2011-06-30 18:21:45

标签: java deployment

我正在Maven中为命令行实用程序构建程序集。我可以将它作为可执行jar运行,但它失败了因为我需要在外部加载配置文件。假设以下配置,我将如何运行jar?

  1. Jar位于/opt/myapp/lib/myapp-assembly.jar
  2. Config位于/etc/myapp/config/settings.xml
  3. 我正在使用ClassPathResource(“/ settings.xml”)从类路径加载代码;
  4. 感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

我认为有两种方法可以做到:

  1. 使用jar作为存档而不是可执行jar启动程序,在运行时指定主类。换句话说,执行java -classpath /opt/myapp/lib/myapp-assembly.jar:/etc/myapp/config [主类的名称]。
  2. 使用jar清单文件的Class-Path字段。其中的条目直接添加到运行时类路径中,没有什么能阻止您指定文件系统目录而不是另一个jar文件。所以你的清单将包含:Class-Path:/ etc / myapp / config /