【问题标题】:Is it possible to load different config files on starting .jar?是否可以在启动 .jar 时加载不同的配置文件?
【发布时间】:2017-08-21 07:12:34
【问题描述】:

我的问题是关于 .jar 文件的。在我的项目中,我使用 json 配置文件,该文件加载到我的 .jar 文件中。是否有可能以某种方式使用不同的配置文件?我有一个使用服务器/客户端套接字完成的项目,我知道我会有很多客户端,我不想为每个配置文件创建很多 client.jar,我想使用一个主 Client.jar 并运行它只是不同的配置文件。

如果您看不懂,我会尝试举例说明:

也许可以制作自定义标志或其他东西?

java -jar -config Client.jar example/foo/config.json
java -jar -config Client.jar example/foo/config2.json

等等...我想有人会帮助我.. :)

【问题讨论】:

  • 你如何阅读你的配置文件?
  • @MauricePerry 我正在将它加载到我的代码中,但我需要以某种方式重写以使其以其他方式读取,就像我上面所说的那样..
  • 以环境变量为例。

标签: java jar console


【解决方案1】:

这里有两个选项:

  1. 将文件名作为参数传递,
  2. 将其作为系统属性传递

选项 1:

你会像这样运行你的 jar:

java -jar Client.jar example/foo/config.json

并在main(String[] args) 方法的第一个参数中获取文件名。

选项 2:

你会像这样运行你的 jar:

java -Dconfig=example/foo/config.json -jar Client.jar

你可以通过调用System.getProperty("config")来获取文件名。

第二种方法的优点是让文件名在程序中的任何地方都可用,而第一种方法只使它在你的 main 方法中可用。

【讨论】:

  • 好的,这是我一直在寻找的,但是.. 第一个选项,如果我要这样运行,我可以运行如下配置文件:java -jar Client.jar example/foo/ config.json 稍后:java -jar Client.jar example/foo/config2.json?以及我将如何获得文件名?
  • @Ervinas34 in args[0],在你的主要方法中
  • 非常感谢!那是我的问题 100% 准确!标记您的答案并有效! :)
猜你喜欢
  • 1970-01-01
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 2022-12-23
相关资源
最近更新 更多