Проблема при запуске задачи с использованием log4j с использованием Ant - PullRequest
0 голосов
/ 07 октября 2010

Мое Java-приложение использует log4j для ведения журнала. Используя ant, проект успешно компилируется, но я не могу его запустить. Я получаю ошибку

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/Log
.........
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log

Мой путь к классам содержит банку log4j.

[echo] ..../apache-log4j-1.2.15/log4j-1.2.15.jar: .....

Моя версия муравья 1.7.1. Чего мне не хватает?

[Редактировать] Мое приложение ссылается на другой проект, для которого требовался jar для регистрации общего ресурса Поэтому я попытался создать исполняемый файл jar указанного проекта, чтобы все зависимости были перенесены. Задача ant для создания исполняемого jar выглядит следующим образом:

<target name="executablejar" depends="compile">
        <delete file="${dist}/app.jar" />

        <javac debug="true" srcdir="${src}" destdir="${classes}" classpath="${javac.classpath}"/>

        <copy todir="classes" flatten="true">
            <path>
                  <pathelement path="${javac.classpath}"/>
                </path>
        </copy>
        <jar jarfile="${dist}/app.jar" basedir="${classes}" />
</target>

Однако ошибка все еще сохраняется. Правильно ли я создаю исполняемый файл jar?

Ответы [ 2 ]

1 голос
/ 07 октября 2010

Возможно, вы случайно импортировали класс из org.apache.commons.logging, и теперь, как и следовало ожидать, JVM ожидает найти определение класса в вашем пути к классам во время выполнения.

Я бы порекомендовал поискать в вашем коде пакет commons-logging.

0 голосов
/ 07 октября 2010

Вы добавите apache commons logging в ваш путь к классам.Пакет org.apache.commons.logging не является частью log4j.

...