Java Ant、jvmarg、系统属性和引号
我们有一个属性,它包含一系列要在Ant脚本中传递给JVM的参数 示例(注意第二项中的引号): 如果我用Java Ant、jvmarg、系统属性和引号,java,ant,properties,quotes,Java,Ant,Properties,Quotes,我们有一个属性,它包含一系列要在Ant脚本中传递给JVM的参数 示例(注意第二项中的引号): 如果我用echo目标打印变量的内容,我会得到预期的结果 <echo message="${jvm.arguments}"/> 然后,我将该变量用作JVM的参数 例如: <junit fork="true" forkmode="once" showoutput="true" printsummary="on"> <jvmarg line="-XX:M
echo
目标打印变量的内容,我会得到预期的结果
<echo message="${jvm.arguments}"/>
然后,我将该变量用作JVM的参数
例如:
<junit fork="true" forkmode="once" showoutput="true" printsummary="on">
<jvmarg
line="-XX:MaxPermSize=256m -Xms1024M ${jvm.arguments}"
如何将系统属性传递给包含引号的JVM?(单人房还是双人房)
我尝试使用双引号转义它们,但没有效果。我使用单值的
<jvmarg value="-ea"/>
<jvmarg value="-Dapp.URL=URL=${jvmargs}"/>
带有-debug的输出包含您期望的行
[junit] '-ea'
[junit] '-Dapp.URL=URL='jdbc:oracle:thin:@//192.168.56.42:1521/xe':User=user:Password=password'
行
用于处理用空格分隔的参数。它可以进行额外的解析和处理,以处理带有空格的输入。我还没有检查代码
[junit] Executing '/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java' with arguments:
[junit] '-XX:MaxPermSize=256m'
[junit] '-Xms1024M'
[junit] '-Dsql.driver=oracle.jdbc.driver.OracleDriver'
[junit] '-Dapp.datasource-properties=URL=jdbc:oracle:thin:@//192.168.56.42:1521/xe:User=user=password'
<jvmarg value="-ea"/>
<jvmarg value="-Dapp.URL=URL=${jvmargs}"/>
ant tests -Djvmargs=\'jdbc:oracle:thin:@//192.168.56.42:1521/xe\':User=user:Password=password -debug
[junit] '-ea'
[junit] '-Dapp.URL=URL='jdbc:oracle:thin:@//192.168.56.42:1521/xe':User=user:Password=password'