我有一个运行的现有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);
}
}
null 我有两个问题: (1)我无法让Java可执行文件读取系统属性 我是否这样做: 我如何通过这些变量?另外,使用还是更好?
问题内容: 我们在模型pojos中的一些方法已被注释为: columnDefinition 属性取决于数据库供应商,因此在尝试使用Hibernate删除HSQLDB中的架构时会失败: 为了解决这个问题,我正在考虑这个解决方案(但不想花时间,如果不可能的话),在运行时,为每个方法列加注: 获取@Column批注 创建列注释的副本,使用javaassist将columnDefinition设置为nul
22.13.4.通过系统属性执行单独测试 如上所述该机制已经被测试过滤取代 译者注:被取代的东西就先不翻译了 Setting a system property of taskName.single = testNamePattern will only execute tests that match the specified testNamePattern. The taskName can
使用log4j2记录器和服务器创建一个spring-boot应用程序是wildfly10/jboss7.1。我从Configuration:System Properties添加了“System Properties”:“LogLevel”,并且能够从Spring Boot应用程序访问它。我在log4j2.xml中调用了这个系统属性来设置日志级别。log4j2.xml: 控制器类:
当我通过Eclipse运行Gradle项目时,我得到以下错误。
问题内容: 如何从Java程序外部更改user.home系统属性,使其认为它与D:\ Documents and Settings \%USERNAME%是不同的目录?通过环境变量还是VM参数? 问题答案: 设置VM参数应该起作用: 这是一个测试案例: 在Win XP和Linux上使用Java 1.5.0_17测试