Java:通过运行时修改系统属性
发布时间:2020-12-15 08:34:37 所属栏目:Java 来源:网络整理
导读:我有一个运行的jar文件.它是Selenium RC服务器.我希望能够更改JVM httpProxy.host/port/etc系统值.一方面,我可以修改源并添加此功能.需要一些时间.还有另一种可能的方法吗?就像拥有我自己的JAR(它会设置这些JVM属性)一样,在同一个JVM实例中调用selenium-rc(
我有一个运行的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 – the java application launcher, 编辑: 您可以编写一个作为应用程序启动器的包装器.很容易模拟使用反射调用类中的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,appArgs.length); System.setProperty("http.proxyHost","someHost"); main.invoke(null,appArgs); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |