是否可以在启动.jar时加载不同的配置文件?

时间:2017-08-21 07:12:34

标签: java jar console

我的问题是关于.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

依此类推...我想有人会帮助我...... :)

1 个答案:

答案 0 :(得分:1)

这里有两个选项:

  1. 将文件名作为参数传递,
  2. 将其作为系统属性传递
  3. 选项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")来获取文件名。

    第二种方法的优点是可以在程序中的任何位置使用文件名,而第一种方法只能在主方法中使用它。