Как программно создать исполняемый файл jar из исходного кода?

Мне нужно программно создать исполняемый файл .jar из строки. Мое решение состоит в том, чтобы создать файл .class из строки и добавить его в .jar с помощью JarOutputStream.

  1. Какой API я должен использовать для создания файла .class?
  2. Есть ли другие решения для создания .jar из исходного кода?

person Anton Putov    schedule 19.04.2012    source источник
comment
Мне нужно программно создать исполняемый jar-файл из String. 1) Почему? 2) Можно ли ожидать, что у конечного пользователя будет установлен JDK?   -  person Andrew Thompson    schedule 20.04.2012
comment
API компиляции. Конечно, есть и другие решения для создания jar-файла из исходного кода — обычный процесс разработки. Или есть такие вещи, как javassist и т. д.   -  person Dave Newton    schedule 20.04.2012


Ответы (2)


Для этого вы можете использовать Java Compiler API .

Существует отличный учебник, который может ты через.

person Samuel Rossille    schedule 13.11.2012
comment
Пожалуйста, не могли бы вы помочь мне создать банку из этого исходного кода github.com/upictec/org.json.me Я пробовал много вещей и даже установил maven, но я не могу получить банку - person eddy; 24.05.2014
comment
Итак, я не знаю, полностью ли я понял процесс, но теперь мы успешно скомпилированы. Как мы теперь можем перейти к runnable jar? - person ; 30.09.2019

Для компиляции кода нужен компилятор. Вы можете использовать компилятор SunOracle или компилятор Eclipse. Вызов API-интерфейса компилятора (у обоих есть задокументированные API-интерфейсы) создаст файл .class во временном расположении. Затем можно сделать баночку.

В качестве примера такого рода вещей начните, например, с Подключаемый модуль компилятора Maven, который представляет собой модуль Java, использующий API-интерфейс компилятора. Вам придется найти свой путь в модуль компилятора Plexus.

person bmargulies    schedule 13.11.2012
comment
Пожалуйста, не могли бы вы помочь мне создать банку из этого исходного кода github.com/upictec/org.json.me Я пробовал много вещей и даже установил maven, но я не могу получить банку - person eddy; 24.05.2014