Как сделать пакет Java с классами

Я хотел бы создать пакет Java в файле JAR с предварительно скомпилированными классами, чтобы другие проекты Java могли их использовать. Как я могу это сделать? Мне кажется, что большинство руководств, которые я нашел, предполагают наличие основного класса/метода, но я не хочу, чтобы это было приложение, которое запускается само по себе. Кроме того, ресурсы (различные файлы) внутри моего проекта должны быть помещены в JAR, поскольку мое приложение зависит от них. Это возможно? Я (кстати) использую Gradle.

Было заявлено, что этот вопрос является дубликатом этого: Java создает файл .jar. Однако этот вопрос предполагает наличие основных методов и не касается того, как включать ресурсы.

Возможный дубликат Java создает файл .jar

user11044402 29.07.2019 15:12

Если вы используете Gradle, то он уже должен сделать это за вас (проверьте папку build/libs вашего проекта). Если это не так, опубликуйте свой файл build.gradle и какие команды вы используете для сборки.

Mark Rotteveel 29.07.2019 17:20
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
67
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

вы можете поместить все свои методы/функции в файл класса, а затем экспортировать его в .jar

затем добавьте банку в путь сборки вашего проекта. Теперь вы сможете вызывать эти функции из вашего текущего основного класса Java.

Не могли бы вы привести пример? Что такое файл класса, и имеет ли эта задача, о которой я прошу, определенное имя? А как насчет проблемы с файлами ресурсов, которые я хотел бы включить?

Birdie 29.07.2019 15:12

открытый класс Simple { public static int add(int a, int b){ return a+b; } } вы можете просто создать файл java, добавив некоторые функции выше, затем вы можете создать файл jar либо из командной строки, либо с помощью eclipse, вы можете экспортировать java в jar. Затем создайте еще один проект Java, добавьте созданную вами банку, после чего вы сможете использовать функции в этой банке.

Ajith Naruto 29.07.2019 15:25
Ответ принят как подходящий

Вы можете создать банку из командной строки.

Скопируйте все классы, которые вы хотите включить в папку.

Затем откройте эту папку в командной строке и введите эту команду.

jar cfv YourProjectName.jar *

И JAR будет создан в той же папке, содержащей все классы.

Другое решение:

Если вы используете eclipse, попробуйте:

Щелкните правой кнопкой мыши пакет -> Экспорт -> java -> файл jar.

Вы также можете выбрать классы и щелкнуть их правой кнопкой мыши вместо пакета.

Редактировать:

Обратитесь к https://docs.oracle.com/javase/tutorial/deployment/jar/build.html для более подробной информации об этой команде.

Спасибо! Но как насчет ресурсов? А у вас есть аналогичная стратегия для Intellij?

Birdie 29.07.2019 15:21

Извините, можно подробнее? Если это не связано с этим вопросом, задайте его в новом вопросе.

Saud Aljaffer 29.07.2019 15:23

Я ответил на ваш вопрос?

Saud Aljaffer 29.07.2019 15:28

Вы не ответили на мой вопрос о ресурсах. Мои классы зависят от загрузки некоторых файлов в мой каталог ресурсов (в проекте).

Birdie 29.07.2019 15:37

Вы пытались включить их в ту же папку, что и классы, перед созданием банки?

Saud Aljaffer 29.07.2019 16:09

Теперь я понимаю, что ваше решение работает. Но не могли бы вы объяснить вариант cfv?

Birdie 29.07.2019 18:15

Чтобы объяснить это кратко, c означает создание, f означает файл, v означает подробный. Для получения более подробной информации проверьте ссылку, которую я добавил в ответ.

Saud Aljaffer 30.07.2019 08:30

Другие вопросы по теме