Java:通过运行时修改系统属性

我有一个运行的现有jar文件。它是Selenium RC服务器。我希望能够更改JVM

httpProxy.host/port/etc系统值。一方面,我可以修改源代码并添加此功能。这将需要一些时间。还有另一种可能的方法吗?就像我自己的JAR(将设置这些JVM属性)在同一个JVM实例中调用selenium-

rc(这样,它便能够修改其JVM变量的值)?

回答:

您可以使用以下命令在命令行上定义系统属性

-DpropertyName=propertyValue

所以你可以写

java -jar selenium-rc.jar -Dhttp.proxyHost=YourProxyHost -Dhttp.proxyPort=YourProxyPort

请参阅Java-

Java应用程序启动器,

编辑:

您可以编写一个包装,它是一个应用程序启动器。main使用反射在类中模拟调用方法很容易。然后,您还可以System.setProperty在启动最终应用程序之前通过设置系统属性。例如,

public class AppWrapper

{

/* args[0] - class to launch */

public static void main(String[] args) throws Exception

{ // error checking omitted for brevity

Class app = Class.forName(args[0]);

Method main = app.getDeclaredMethod("main", new Class[] { (new String[1]).getClass()});

String[] appArgs = new String[args.length-1];

System.arraycopy(args, 1, appArgs, 0, appArgs.length);

System.setProperty("http.proxyHost", "someHost");

main.invoke(null, appArgs);

}

}

以上是 Java:通过运行时修改系统属性 的全部内容, 来源链接: utcz.com/qa/423834.html

回到顶部