【问题标题】:How to add system property equivalent to java -D in Ant如何在 Ant 中添加等效于 java -D 的系统属性
【发布时间】:2011-01-23 14:47:09
【问题描述】:

我需要设置 java -Djava.library.path=/some/path 并且我想在运行我的 ant 脚本、构建我的 jar 时这样做。

我想我必须使用

<sysproperty key="java.library.path" value="/some/path"/>

但它不起作用。我无法使语法正常工作。我用谷歌搜索发现的唯一东西是 sysproperty 与

 <java classname>

但这对我来说没有任何意义。

我不确定这是否相关,但我正在使用 ant 创建一个耳朵并在 JBoss 中部署这个耳朵。

【问题讨论】:

    标签: java ant build-process build


    【解决方案1】:

    这是一个示例 Ant 目标 run,它执行 example.jar 并使用 key="java.library.path"value="/some/path" 传递系统属性:

    <target name="run">
        <java jar="example.jar" fork="true">
            <jvmarg value="-Djava.library.path=/some/path"/>
        </java>
    </target>
    

    【讨论】:

    • 虽然我没有测试过,但我希望它是对的,所以我会接受这个
    【解决方案2】:

    你有没有尝试运行

    ant -Djava.library.path=/some/path ...  ?
    

    【讨论】:

    • 不,我没试过。但我在日食中运行蚂蚁。不知道如何在 eclipse 中添加该参数。
    • 如果可以选择,我宁愿避免那样做
    • 好的,我按照你的建议试过了,还是不行。当我打印出 System.getProperty("java.library.path") 时,我仍然没有得到我添加的值。还有很多其他的事情。
    • 是什么把那些“很多其他的东西”放在那里?通常没有设置。
    • 我不知道。我猜是JBoss。我现在的值是:11:44:55,656 INFO [OpenOfficeService] java.library.path 是:/usr/lib/jvm/jdk1.5.0_22/jre/lib/i386/server:/usr/lib/jvm/ jdk1.5.0_22/jre/lib/i386:/usr/lib/jvm/jdk1.5.0_22/jre/../lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.15/jre /lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/i386:/usr/lib/xulrunner-addons:/usr/lib/xulrunner-addons 但是,我想添加 /usr/lib/ure/lib
    【解决方案3】:

    我发现了如何解决这个问题。

    似乎因为我们使用 ant 在应用服务器(Web 服务器)中创建和部署我们的应用程序,在我们的例子中是 JBoss,我们不得不修改

    run.sh
    并将 java.library.path 添加为 VM 参数。

    类似这样的:

    JBOSS_NATIVE_DIR="$JBOSS_NATIVE_DIR:/usr/lib/ure/lib/"
    JAVA_OPTS="$JAVA_OPTS -Djava.library.path=$JBOSS_NATIVE_DIR"
    

    因此,在 ant 中传入 VM 参数是不正确的。

    【讨论】:

    • 这并没有真正回答如何用 ant 传递系统属性的一般问题......
    猜你喜欢
    • 2012-04-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    相关资源
    最近更新 更多