2012-05-31 5 views
0

я добавил банку для com.drew *, который: -.ClassNotFoundException во время работы уже сложенной банки

metadata-extractor-2.4.0-beta-1.jar 

Я также смог построить мое приложение в Eclipse, без каких-либо ошибок. Но когда я запускаю банку моего приложения (который включает в себя все необходимые банки, включая один из приведенных выше), я получаю следующее сообщение об ошибке:

Error: java.lang.ClassNotFoundException: com.drew.imaging.jpeg.JpegMetadataReader 

Любые предложения?

Заранее спасибо ..

+0

как вы построили банку? Мне интересно, может ли созданная банка получить доступ к вашей зависимости. –

+0

построил банку, используя export-> jar в eclipse. – Harsh

+0

nice, у меня были проблемы с зависимостью при использовании eclipse для создания банки. Как вы добавили банку в зависимость? Кажется, что по какой-то причине эта зависимость не относится к пути класса встроенной банки. –

ответ

0

Открыть исполняемую банку (с использованием 7z/WinRAR и т.д.) и посмотрите, есть ли ваш metadata-extractor банк включен - также открыть свой манифест и посмотреть, если эта баночка находится в CLASSPATH.

В случае, если все вышеописанное, я думаю, что, возможно, существует несоответствие версии зависимости jar.

Вы экспортируете исполняемую банку с помощью файла Eclipse File-> Export-> Runnable JAR? Он должен работать так же, как в Eclipse

+0

classpath присутствует в файле .classpath внутри баннера моего приложения. Путь классов не является проблемой. Вероятно, несоответствие версии зависимостей jar. – Harsh

0

Вам необходимо указать путь к классам в файле MANIFEST.MF. Вы можете просмотреть этот файл, используя любой инструмент-экстрактор. Если зависимая банка находится в папке, чем указать имя папки в пути к классам запись должна выглядеть

Class-Path: folder/jarfilename 

Это поможет вам в дальнейшем http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

Смежные вопросы