Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ant中创建类路径JAR的配置列表_Java_Ant_Classpath - Fatal编程技术网

Java 在ant中创建类路径JAR的配置列表

Java 在ant中创建类路径JAR的配置列表,java,ant,classpath,Java,Ant,Classpath,我在ant任务中有一个罐子列表,就像这样 <path id="lib.path.id"> <fileset dir="${lib.dir}"> <include name="jar/*.jar"/> </fileset> </path> wrapper.java.classpath.1=../lib/activation.jar wrapper.java.classpath.2=../lib/bce

我在ant任务中有一个罐子列表,就像这样

  <path id="lib.path.id">
    <fileset dir="${lib.dir}">
      <include name="jar/*.jar"/>
    </fileset>
  </path>
wrapper.java.classpath.1=../lib/activation.jar
wrapper.java.classpath.2=../lib/bcel.jar
wrapper.java.classpath.3=../lib/c3p0-0.8.4.5.jar
wrapper.java.classpath.4=../lib/cglib-full-2.0.2.jar
....
在ant中如何执行此操作?

在ant中,可以使用将路径集合转换为字符串。然后可以在配置文件中使用它。它将不是您指定的确切格式,但它将是正确的类路径格式,可以用于java命令

<pathconvert targetos="unix" property="wrapper.java.classpath" refid="lib.path.id"/>

要创建属性文件,请使用任务:


正如我在评论中所解释的,如果您正在使用,您不必在
wrapper.conf
中列出所有jar,您只需指示包含所有jar文件的路径:

wrapper.java.classpath.1=/path/to/lib/*.jar
wrapper.java.classpath.2=/any/other/lib/directory/*.jar
wrapper.java.classpath.3=/a/path/to/one/library/my-library.jar
...

埃兰暗示了正确的方向。我以ant.library.dir为例

<project name="util">

<property name="lib.dir" value="${ant.library.dir}"/>

<target name="gen-property-file" description="">

    <path id="lib.path.id">
        <fileset dir="${lib.dir}">
            <include name="*.jar"/>
        </fileset>
    </path>

    <pathconvert pathsep="${line.separator}wrapper.java.classpath.Number="             
        property="echo.path.compile"             
        refid="lib.path.id">
    </pathconvert>

    <echo file="my.properties">wrapper.java.classpath.Number=${echo.path.compile}</echo>

</target>


您可以手动或用脚本替换.Number和Basepath。

如果您想使用Tanuki Java服务包装器,您不必在
Wrapper.conf
中列出所有
jar
,您只需指示
Wrapper.Java.classpath.1=/path/to/lib/*.jar
,但这只是一个猜测,这就是为什么它是一个评论;)@罗曼塔兹:谢谢,这是一个有用的建议,我也许可以改为这样做。这并不是我想要的。我需要上面指定的格式。
<project name="util">

<property name="lib.dir" value="${ant.library.dir}"/>

<target name="gen-property-file" description="">

    <path id="lib.path.id">
        <fileset dir="${lib.dir}">
            <include name="*.jar"/>
        </fileset>
    </path>

    <pathconvert pathsep="${line.separator}wrapper.java.classpath.Number="             
        property="echo.path.compile"             
        refid="lib.path.id">
    </pathconvert>

    <echo file="my.properties">wrapper.java.classpath.Number=${echo.path.compile}</echo>

</target>
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-antlr.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-bcel.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-bsf.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-log4j.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-oro.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-regexp.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32