代码之家  ›  专栏  ›  技术社区  ›  Coding District

Eclipse Ant Builder问题

  •  2
  • Coding District  · 技术社区  · 16 年前

    我制作了一个定制的Ant脚本,在每次构建时自动创建一个JAR文件。

    这就是它的样子:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project name="TestProj" basedir="." default="jar">
      <property name="dist" value="dist" />
      <property name="build" value="bin/test/testproj" />
      <target name="jar">
          <jar destfile="${dist}/TestProj.jar">
              <manifest>
                  <attribute name="Main-Class" value="test.testproj.TestProj" />
              </manifest>
              <fileset dir="${build}" />
          </jar>
      </target>
    </project> 
    

    我通过右键单击我的项目>属性>生成器>单击新建>Ant Builder>添加了它,然后指定了上述XML文件的位置。

    但是,当我通过执行以下操作来运行它时:

    java -jar TestProj.jar
    

    我得到一个noclasdeffounderror测试/testproj/testproj

    我在Ubuntu中使用Eclipse。testproj是类的名称,它在包test.testproj中。

    我很确定清单有问题,也可能是XML文件的位置有问题,但我不确定如何解决这个问题。有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   martin clayton egrunin    15 年前

    您是否尝试过:

    <property name="build" value="bin" /> <!-- instead of bin/test/testproj -->
      <target name="jar">
          <jar destfile="${dist}/TestProj.jar">
              <manifest>
                  <attribute name="Main-Class" value="test.testproj.TestProj" />
              </manifest>
              <fileset dir="${build}" />
          </jar>
      </target>
    

    只是想看看它是否解决了这个问题?

    这个 Ant Task 提及:

    此任务形成一个隐式文件集,并支持 <fileset> ( dir 变成basedir )

    这意味着您试图在根目录中jar任何类 bin/test/testproj (所以) TestProj 得到包含),而不是引用根目录中的所有类 bin (其中包括 test.testproj.TestProj )

    推荐文章