Инструмент экспорта Eclipse против инструмента jar командной строки - PullRequest
1 голос
/ 20 июля 2011

Как одно сравнивается с другим? У меня есть встроенное приложение, которое, если оно скомпилировано и заархивировано в .jar с помощью обычного инструмента экспорта Eclipse, будет нормально работать в моем эмуляторе, а затем и на самом устройстве. Сейчас я пытаюсь использовать инструмент командной строки jar для того же эффекта, но я застрял. Файл .jar создан, и я даже могу установить его в эмуляторе, но при попытке запустить ничего не происходит.

Из-за моего опыта работы с этим эмулятором / устройством я считаю, что проблема заключается в файле .jar, сгенерированном инструментом командной строки. Я не использую какие-либо «параметры компиляции», так сказать с Eclipse, за исключением файла манифеста, который я также добавляю с помощью инструмента командной строки. Кроме того, есть «некоторое» сжатие с использованием Eclipse, в то время как инструмент командной строки создает еще более сжатый файл (или вообще не сжимается с использованием параметра -0, но ни один не работает).

Что ж, все это заставило меня задуматься о том, как работает инструмент архивирования Eclipse, и есть ли способ получить те же результаты с помощью инструмента командной строки - я знаю, я знаю, это звучит глупо, но, черт побери, эмулятор.

Не то, чтобы я считал уместным, но команда jar, которую я использую, такова:

jar cmfv0 34092040.mf Releaser.jar -C src . (output file size: 140kb)

или

jar cmfv 34092040.mf Releaser.jar -C src . (output file size: 53kb)

Eclipse выводит файл размером 81 КБ.

РЕДАКТИРОВАТЬ: Пожалуйста, закройте этот вопрос. Проблема в моей гигантской глупости (я забыл Скомпилировать файлы перед их архивированием u.u)

1 Ответ

1 голос
/ 21 июля 2011

Eclipse может создавать другую структуру внутри своего архива, например, в том числе зависимости или тому подобное. Существуют ли какие-либо зависимые проекты или сторонние банки?

Если код в jar-файле будет зависеть от внешнего jar-файла, вы можете добавить запись в файл manifest.mf для каждого зависимого jar-файла. Предполагается, что среда выполнения проверяет манифест и выдает более конкретную ошибку; что-то вроде «Не могу найти jar: xyz.jar», которое напоминает вам добавить его в путь к классам.

...