[英]How to make a parameter override while running a Java jar file?
我有一个 Java maven 项目,其 Jar 文件在其他项目中用作 ZF20E3C5E54C0AB3D36AZAZ8D6 库这个 SDK 用于调用 prod 环境中默认的其他 API。 我想通过覆盖一个变量让它在测试环境中运行。
public class Routes {
public Map<String, String> routes;
private static String _baseUrl = "https://production-env.com";
@SuppressWarnings("serial")
public Routes() {
routes = new HashMap<String, String>() {
{
put("api.login", "/rest/login");
put("api.register", "/rest/register");
}
};
}
}
这是路线 class ,其中包含基础 URL 用于生产/测试,其他类使用。 我想让默认的_baseUrl
与上面的相同。 但我希望能够在运行 Jar 时将其覆盖为"https://testing-env.com"
。 而且我不想为此添加一个公共设置器。 我希望能够通过在运行 Jar 文件时传递一些 arguments 来做到这一点。
正如@Thomas 在评论中提到的:
// Get system property with default if property does not exist
public class Routes {
private static String _baseUrl = System.getProperty("base.url", "https://production-env.com");
public Map<String, String> routes;
@SuppressWarnings("serial")
public Routes() {
routes = new HashMap<String, String>() {
{
put("api.login", "/rest/login");
put("api.register", "/rest/register");
}
};
}
}
执行 jar 时设置属性
java -Dbase.url=https://dev-env.com -jar my.jar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.