作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
是否可以在java任务中指定库路径?相当于:
java -Djava.library.path=somedir Whatever
最佳答案
<propertyset>
and <syspropertyset>
应该是你要找的东西
另见 this thread例如。
您可以在您的 java ant 任务中一一设置它们:
<sysproperty key="test.classes.dir"
value="${build.classes.dir}"/>
乏味...或者您可以将它们作为 Ant 属性 block 传递:
<syspropertyset>
<propertyref prefix="test."/>
</syspropertyset>
您可以引用外部系统属性:
<propertyset id="proxy.settings">
<propertyref prefix="http."/>
<propertyref prefix="https."/>
<propertyref prefix="socks."/>
</propertyset>
然后在您的 java ant 任务中使用它们:这 propertyset
可按需使用;当向下传递到新进程时,所有与给定前缀匹配的当前 ant 属性都向下传递:
<java>
<!--copy all proxy settings from the running JVM-->
<syspropertyset refid="proxy.settings"/>
...
</java>
我完全错过了你试图通过 java.library.path
的事实属性(property)!
如 this thread 中所述:
if you try to set its value outside of the java task, Ant ignores it. So I put all properties except for that one in my syspropertyset and it works as expected.
含义:
<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>
将不起作用,但以下应该:
<target name="debug">
<java>
<sysproperty key="java.library.path" path="${dist}"/>
</java>
</target>
(尽管您可以尝试将“fork
”属性设置为 true,如果它不起作用)
(注:你cannot modify its value though)
关于java - 如何从 Java 任务设置 Java 库路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1159333/
我是一名优秀的程序员,十分优秀!