Java 是否可以在启动.jar时加载不同的配置文件?
我的问题是关于.jar文件的。在我的项目中,我使用json配置文件,它加载在我的.jar文件中。我可以使用不同的配置文件吗?我有一个使用服务器/客户机套接字的项目,我知道我会有很多客户机,我不想为每个配置文件创建很多client.jar,我想使用一个主client.jar并通过不同的配置文件运行它 如果您不理解,我将尝试用示例进行解释: 也许可以做个定制的旗子什么的Java 是否可以在启动.jar时加载不同的配置文件?,java,jar,console,Java,Jar,Console,我的问题是关于.jar文件的。在我的项目中,我使用json配置文件,它加载在我的.jar文件中。我可以使用不同的配置文件吗?我有一个使用服务器/客户机套接字的项目,我知道我会有很多客户机,我不想为每个配置文件创建很多client.jar,我想使用一个主client.jar并通过不同的配置文件运行它 如果您不理解,我将尝试用示例进行解释: 也许可以做个定制的旗子什么的 java -jar -config Client.jar example/foo/config.json java -jar -c
java -jar -config Client.jar example/foo/config.json
java -jar -config Client.jar example/foo/config2.json
等等。。。我想有人会帮我的……) 这里有两个选项:
java -jar Client.jar example/foo/config.json
java -Dconfig=example/foo/config.json -jar Client.jar
并在main(String[]args)
方法的第一个参数中获取文件名
备选案文2:
您可以这样运行您的jar:
java -jar Client.jar example/foo/config.json
java -Dconfig=example/foo/config.json -jar Client.jar
您可以通过调用System.getProperty(“config”)
来获取文件名
第二种方法的优点是让文件名在程序中的任何位置都可用,而第一种方法只在主方法中可用。如何读取配置文件?@MauricePerry我正在代码中加载它,但是我需要以某种方式重写,让它以我上面所说的另一种方式阅读..例如使用环境变量.好的,这就是我一直在寻找的,但是。。第一个选项,如果我将这样运行,我可以稍后运行如下配置文件:java-jar Client.jar example/foo/config.json:java-jar Client.jar example/foo/config2.json吗?我将如何获得文件名?@Ervinas34在args[0]中,在您的主要方法中,非常感谢!我的问题100%准确!将您的答案标记为有效!:)