JAVA - как собирается .jar?

130
31 мая 2019, 02:40

Подскажите "обывателю" пожалуйста какой мой ход действий.

  1. Есть jar-файл

  2. Если его открыть как архив, то в нем будут .class и .java файлы

  3. .class скомпилированные

  4. .java видимо исходники, так как они читаются

Хочу поменять в исходнике часть функции. В этом понимание есть. Как мне потом собрать обратно этот jar правильно? Нужно скомпилировать из .java обратно в .class и потом упаковать в jar. Я могу просто скомпилированный .class добавить внутрь jar как в архив? Или нужно еще как-то пересобирать весь jar? Внутри jar есть еще манифест, но в нем ничего не прописано, только Manifest-Version: 1.0

Answer 1

Люди вы о чём? Вас спросили про jar файл, а вы сразу накидали кучу советов про maven, ItellijIDEA и пр. С чего вы решили, что у автора вопроса всё это есть?

По сути. jar - это обычный ZIP-файл. Иногда бывает с подписями, контрольными суммами тогда что-то в нём исправить не получится. Если у вас простой файл, вы можете исправить java файл, перекомпилировать его с помощью javac в class файл и собрать jar файл заново с помощью обычного архиватора. В составе JDK есть файл JAR.EXE (если у вас Windows), который легко сделает это. Конечно удобнее всё делать в какой-либо Java IDE, если она у вас есть.

Answer 2

Если используешь maven добавь в пом файле должно быть jar или соответствующий плагин. Читай мануал.

javac MyApp.java
jar -cf myJar.jar myApp
READ ALSO
Cannot convert value of type 'java.lang.String'

Cannot convert value of type 'java.lang.String'

Читаю Spring in action 5, пытаюсь реализовать примерыНа одном из контроллеров выходит ошибка:

139
unexpected token, identifier expected

unexpected token, identifier expected

Что я пропустил в коде?

113
Получить значение из DatePicker

Получить значение из DatePicker

Используется JavaFx для создания интерфейсаВ окне есть элемент DatePicker

113
Как из Uikit2 оставить только стили сетки

Как из Uikit2 оставить только стили сетки

Столкнулся с такой проблемой, что надо оптимизировать проект с данным фреймворкомПолная библиотека занимает > 100kБ (И это без компонентов)...

131