Проблема Eclipse Ant Builder - PullRequest
2 голосов
/ 26 апреля 2010

Я создал собственный скрипт 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> 

Я добавил его, щелкнув правой кнопкой мышимой проект> свойства> строители> щелкнул новый> построитель муравьев> затем я указал местоположение вышеупомянутого XML-файла.

Однако, когда я запускаю его, выполнив:

java -jar TestProj.jar

NoClassDefFoundError test / testproj / TestProj

Я использую Eclipse в Ubuntu.TestProj - это имя класса, и оно находится в пакете test.testproj

Я почти уверен, что с манифестом что-то не так и, возможно, также и местоположение XML-файла, но я не уверен, как это исправить.этот.Есть идеи?

1 Ответ

2 голосов
/ 26 апреля 2010

Вы пробовали с:

<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 упоминает:

Эта задача формирует неявный набор файлов и поддерживает большинство атрибутов <fileset> (dir становится basedir )

Это означает, что вы пытаетесь сделать jar любого класса в корне bin/test/testproj (поэтому включается TestProj) вместо ссылки на все классы в корне bin (который будет включать test.testproj.TestProj)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...