Я создал проект утилиты java, который содержит XML, DB и другие подобные классы полезности. Это требует зависимостей сторонних разработчиков от некоторых общих библиотек Apache, поэтому я добавил его в свой проект java, настроив путь сборки в eclipse Juno. Теперь я хочу экспортировать этот проект java как файл jar. Когда я экспортирую этот проект в качестве исполняемого файла jar, он работает нормально, т. Е. Если я включу эту банку в какой-то другой проект java, я могу получить доступ к классам утилиты, но когда я просто экспортирую проект утилиты в качестве jar, я не в состоянии его использовать. Runnable jar требует основного класса, но я не хочу содержать основной класс в проекте java моей утилиты. Я сравнил оба файла jar. Разница, которую я обнаружил, заключалась в том, что в runnable jar-файле нет файла .classpath, кроме простого файла jar, который находится там. В файле runnable jar все файлы jar упоминаются в файле с именем MANIFEST-INF.mf, но в простом jar-файле он содержит только версию файла .mf. Может ли кто-нибудь сказать мне, как я могу сделать файл jar без основного класса и использовать его для других моих проектов java, так что мне просто нужно включить файл jar и использовать его как есть.Как экспортировать проект java как файл jar
ответ
Если вы просто экспортируете проект в файл jar, вы можете упаковать банку (войну), используя инструмент apache ant. ли что-то вроде этого:
<jar destfile="${dist}/lib/app.jar"
basedir="${build}/classes"
excludes="**/Test.class"
/>`
Я предполагаю, что не было предусмотрено в упадке, так как извлечение внешних 3-й библиотек классов партии в полезности проекта является то нестандартное. Это может привести к множеству проблем, так как ваш проект растет, а конфликты классов являются одним из них.
Если вы хотите продолжить свой подход, yon может экспортировать ваш проект в качестве обычного проекта jar. После этого вы откроете свой проект, а также другие сторонние библиотеки в утилите, например 7zip, и перетащите содержимое вашей сторонней библиотеки (кроме META-INF
) в свою проектную банку. Это все.
Если вы, однако, хотите его автоматизировать, ant был бы вашим другом.
Мне просто интересно, как apache commons или dom4j или log4j или любые другие банки. Как эти банки не являются исполняемыми файлами, и все же люди могут включать их в свой проект и использовать его ???? –
@MrunalGosar Но эти банки не включают классы внешних зависимостей. Если вы просто хотите экспортировать свои классы в качестве банки, эта функция уже доступна. –
Посмотрите на maven. Возможно, это решает ваши проблемы. http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html – smsnheck
Как план резервного копирования, я тоже смотрю на maven. но это действительно простая вещь, которую я должен уметь делать из самого затмения, не так ли? вы хотите сказать, что мой вышеприведенный сценарий невозможен затмение? –
У этого парня такая же проблема: http://stackoverflow.com/questions/16422892/how-to-export-a-jar-file-including-my-classes-and-other-jar-files-extracted-us ? rq = 1, но никто не предоставил решение через eclipse –