我知道我可以通过使用-D参数传递参数来为Tomcat指定系统属性,例如" -Dmy.prop = value ".
我想知道是否有更简洁的方法通过在context.xml文件或其他一些tomcat配置文件中指定属性值来实现此目的.我想这样做是因为,首先,跟踪我的属性更容易,其次,我有多个上下文运行,我不知道如何通过-D参数指定特定于上下文的属性.
我使用的是Tomcat 5.5版.
有没有办法(我的意思是如何)在maven项目中设置系统属性?
我想从我的测试和我的webapp(本地运行)访问一个属性,我知道我可以使用java系统属性.
我应该把它放在./settings.xml或类似的东西?
上下文
我参加了一个开源项目并设法更改数据库配置以使用JavaDB
现在,在JavaDB的jdbc url中,可以将数据库的位置指定为完整路径(请参阅:此其他问题)
或系统属性: derby.system.home
我已经有了代码工作,但目前所有硬编码都是:
jdbc:derby:/Users/oscarreyes/javadbs/mydb
Run Code Online (Sandbox Code Playgroud)
我想删除完整的路径,让它像:
jdbc:derby:mydb
Run Code Online (Sandbox Code Playgroud)
要做到这一点,我需要将系统属性(derby.system.home
)指定为maven,但我不知道如何.
测试是使用junit执行的(我在pom.xml中看不到任何插件),web应用程序使用jetty插件运行.
在命令行中指定系统属性似乎适用于jetty,但我不确定这是否实用(授予其他一些用户可以从eclipse/idea /中运行它)
是否有更简单的方法在命令行上为Java程序指定多个系统属性而不是多个-D语句?
试图避免这种情况:
java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar
Run Code Online (Sandbox Code Playgroud)
我以为我曾经看过有人使用过一个带-D
引号的字符串的例子,但我再也找不到这个例子了.
我正在使用Selenium来自动化测试.我的应用程序专门使用IE,它不适用于其他浏览器.
码:
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
public class Test {
public static void main(String[] args) {
final String sUrl = "http://www.google.co.in/";
System.setProperty("webdriver.chrome.driver","C:\\Users\\vthaduri\\workspace\\LDCSuite\\IEDriverServer.exe");
WebDriver oWebDriver = new InternetExplorerDriver();
oWebDriver.get(sUrl);
WebElement oSearchInputElem = oWebDriver.findElement(By.name("q")); // Use name locator to identify the search input field.
oSearchInputElem.sendKeys("Selenium 2");
WebElement oGoogleSearchBtn = oWebDriver.findElement(By.xpath("//input[@name='btnG']"));
oGoogleSearchBtn.click();
try {
Thread.sleep(5000);
} catch(InterruptedException ex) {
System.out.println(ex.getMessage());
}
oWebDriver.close();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误
必须通过webdriver.ie.driver系统属性设置驱动程序可执行文件的路径; 有关更多信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver.最新版本可以从http://www.seleniumhq.org/download/ 2012年6月12日下午4:18:42 下载org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO:I/O异常(java.处理请求时捕获的net.SocketException:软件导致连接中止:recv失败2012年6月12日下午4:18:42 org.apache.http.impl.client.DefaultRequestDirector tryExecute
有人可以帮我吗?
java internet-explorer webdriver system-properties selenium-webdriver
在Java中,我们使用System.setProperty()方法来设置一些系统属性.根据这篇文章,使用系统属性有点棘手.
System.setProperty()可能是一个邪恶的调用.
- 这是100%线程敌对
- 它包含超全局变量
- 当这些变量在运行时神秘地改变时,调试极其困难.
我的问题如下.
系统属性的范围如何?它们是否特定于每个虚拟机,或者它们具有"超级全局特性",它在每个虚拟机实例上共享相同的属性集?我猜选项1
是否有任何工具可用于监视运行时更改以检测系统属性中的更改.(仅为了便于检测问题)
在Linux 机器上运行Hudson构建时,我们使用命令行将系统属性传递给Java虚拟机.它曾经在2.0.9中很好地工作,因为我们升级到2.1.0它已经完全停止工作.系统属性永远不会进入Java虚拟机.
我创建了一个小型测试项目,实际上根本不起作用.
这应该适用于Maven 2.0.9:
mvn2.0.9 -Dsystem.test.property=test test
Run Code Online (Sandbox Code Playgroud)
但这会失败:
mvn2.1 -Dsystem.test.property=test test
Run Code Online (Sandbox Code Playgroud)
Java代码就是这么做的
assertTrue( System.getProperty("system.test.property") != null);
Run Code Online (Sandbox Code Playgroud) 我不清楚这一点.当我在applet查看器中运行java App或运行Applet时(在IDE环境中), System.getProperty("java.class.path")
给我与System.getenv("CLASSPATH")
我的env变量中定义的CLASSPATH 相同.
但是当我将我的applet部署到web服务器并从与客户端相同的计算机访问它时,我得到了两个不同的结果.(System.getProperty("java.class.path")
仅指向JRE home并System.getenv("CLASSPATH")
返回null).
还有一些令我惊讶的事情:
对于applet部分,env var JAVA_HOME,在浏览器和Applet Viewer中部署applet时得到的结果相同.
如果我在系统级别定义一个env变量,并使用getenv("envName")
结果是null
.无论如何我可以定义一个并在我的Java程序中获取它吗?
java system classpath environment-variables system-properties
我有一个在终端命令下正确运行的项目
mvn package exec:java -Dplatform.dependencies -Dexec.mainClass=Demo
Run Code Online (Sandbox Code Playgroud)
现在,我需要在Mac上使用IntelliJ或Eclipse(最好是IntelliJ)正确调试它(不是终端),但我尝试在各个地方设置VM选项,似乎没有任何工作.
放置这些选项的正确位置在哪里:-Dplatform.dependencies -Dexec.mainClass = Demo?
如何从我的java程序外部更改user.home系统属性,以便它认为它与D:\ Documents and Settings \%USERNAME%不同?通过环境变量或VM参数?
我的application.yml
Spring Boot应用程序有一个配置文件,它定义了两个配置文件(如文档中所述).
启用生产配置文件后,我想将http.maxConnections
系统属性设置为自定义值,例如
spring:
profiles:
active: dev
---
spring:
profiles: dev
---
spring:
profiles: production
http:
maxConnections: 15
Run Code Online (Sandbox Code Playgroud)
但这实际上并没有设置系统级属性; 它似乎只是创建一个应用程序级属性.我在比较启动时通过http:// locahost:8080/env和JMX控制台验证了这一点
java -jar -Dspring.profiles.active=production myapp.jar
Run Code Online (Sandbox Code Playgroud)
与
java -Dhttp.maxConnections=15 myapp.jar
Run Code Online (Sandbox Code Playgroud)
我想我可以@Conditional
在"生产"配置文件中创建一个bean,它System.setProperty
根据我的application.yml
-defined属性以编程方式调用,但是单独通过配置文件有更简单的方法吗?
java ×7
jvm ×2
maven-2 ×2
classpath ×1
command-line ×1
context.xml ×1
eclipse ×1
intellij-13 ×1
maven-plugin ×1
properties ×1
spring-boot ×1
surefire ×1
system ×1
tomcat ×1
webdriver ×1