2011-01-16 3 views
1

У меня Goog'd, но я не могу найти стороннюю библиотеку, которая позволит вам создавать файл jar программно. Я поразился, что даже Apache commons-io, похоже, не обладает такой функциональностью.Сторонняя библиотека для создания файлов jar?

Я бы предпочел не реализовывать его сам, так как API довольно низкий. Существуют ли там сторонние библиотеки, которые будут выполнять эту работу?

Редактировать: Я имел в виду программно в Java. Я не хочу бросать в оболочку, и я не хочу работать с java.io. *.

+1

Что именно вы хотите сделать? –

+0

Я решил, что мне нужно делать. А именно создать банку в рамках настраиваемой задачи в SBT. Я сделал это с помощью FileUtilities.jar (...). Однако мой вопрос стоит. В частности, я поражен тем, что библиотека, подобная apache commons-io, не имеет такого метода, как createJar (File target, List записей, логическая рекурсия, манифест манифеста), например. Поскольку это ресурс сообщества, я бы хотел найти ответ для других, которые приходят после меня. – Synesso

ответ

3

Я не уверен, что вы подразумеваете под «созданием файла банка», но муравей имеет jar task, который будет создавать файл банки для вас

+1

+1. Вы также можете программно использовать задачи Ant, встраивая их в свою программу (не нужно вызывать внешний процесс). – Thilo

2

Вам не нужен библиотека третьей стороны , Это все встроенные в Java (команда баночка использует только те классы)

http://download.oracle.com/javase/6/docs/api/java/util/jar/package-summary.html

Edit:

Это потребует от вас еще работать с java.io. *, как это единственный способ создавать файлы ...

+0

«Вам не нужна сторонняя библиотека, она встроена в Java». Тот же аргумент может быть сделан для Spring, Hibernate или любой другой сторонней библиотеки lib. – Synesso

+0

@Synesso: OP, похоже, не знает о существовании java.util.zip. – EJP

+2

@ Синессо: что? Spring и Hibernate не «встроены в Java» ... – Thilo

0

Предлагаю вам посмотреть JBOSS Arquillian. Он обеспечивает свободный интерфейс для создания банки, войны, уха и т. Д. См. Образец ниже

Archives.create("test.jar", JavaArchive.class) 
       .addClasses(
        GreetingManager.class, 
        GreetingManagerBean.class); 
Смежные вопросы