Von*_*onC 15
<propertyset>而<syspropertyset>应该是你在找什么
例如,请参阅此线程.
您可以在java ant任务中逐个设置它们:
<sysproperty key="test.classes.dir"
value="${build.classes.dir}"/>
Run Code Online (Sandbox Code Playgroud)
乏味...或者你可以将它们作为一组Ant属性传递下去:
<syspropertyset>
<propertyref prefix="test."/>
</syspropertyset>
Run Code Online (Sandbox Code Playgroud)
您可以引用外部系统属性:
<propertyset id="proxy.settings">
<propertyref prefix="http."/>
<propertyref prefix="https."/>
<propertyref prefix="socks."/>
</propertyset>
Run Code Online (Sandbox Code Playgroud)
然后在你的java ant任务中使用它们:这propertyset可以按需使用; 传递给新进程时,传递与给定前缀匹配的所有当前ant属性:
<java>
<!--copy all proxy settings from the running JVM-->
<syspropertyset refid="proxy.settings"/>
...
</java>
Run Code Online (Sandbox Code Playgroud)
我完全错过了你试图通过java.library.path财产的事实!
正如这个帖子中提到的:
如果你试图在java任务之外设置它的值,Ant会忽略它.所以我把除了那个之外的所有属性放在我的syspropertyset中,它按预期工作.
含义:
<property name="java.library.path" location="${dist}"/>
<propertyset id="java.props">
<propertyref name="java.library.path"/>
</propertyset>
<target name="debug">
<java>
<syspropertyset refid="java.props"/>
</java>
</target>
Run Code Online (Sandbox Code Playgroud)
不起作用,但以下应该:
<target name="debug">
<java>
<sysproperty key="java.library.path" path="${dist}"/>
</java>
</target>
Run Code Online (Sandbox Code Playgroud)
(虽然你可以尝试将" fork"属性设置为true,如果它不起作用)
(注意:你不能修改它的值)