Я хочу импортировать класс для другого проекта в Java

(Спасибо, @MarkRotteveel!) Я изучаю Java. Я хочу импортировать класс другого проекта. класс «a» («MySoup») в проекте A («recipe_nomodule») в проект B («test»)

Однако системной библиотеки JRE нет, и она не работает. И я не могу найти сообщения об этой проблеме

ㄴ 1. Я создал еще один проект. (рецепт_номодуль)

  • и пакет (recipe_nomodule), а также класс (MySoup)

ㄴ 2. Я создал recipe.jar

ㄴ 3. Путь сборки Java - Библиотеки - Добавить внешние JAR... (в свойствах)

ㄴ 4. результат.

  • «MySoup не может быть преобразован в тип»
  • "Тип recipe_nomodule.MySoup недоступен"

(23.01.2023 Спасибо за ответы)

Я бы посоветовал вам использовать Maven, упаковать свой проект A как библиотеку maven и импортировать зависимость в проект B. Если вы изучаете Java, вам все равно нужно изучать Maven. Я не думаю, что управление зависимостями вручную стоит того.

Pavel 22.01.2023 11:30

Спасибо, буду смотреть лекции и вспоминать "Мейвен".

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

Ответы 1

Ответ принят как подходящий

В настройках «путь сборки» вашего нового проекта (согласно снимку экрана, который вы разместили для пункта 3), добавьте другой проект на вкладке «проект...».

Вам не нужно создавать банку, вам не нужно добавлять эту банку через «внешние библиотеки..». Вы не хотите этого делать - вам нужна зависимость от проекта. Таким образом, вы можете отредактировать файл в любом проекте, просто сохраните файл, запустите его и посмотрите обновления, не прибегая к рутине создания еще одного jar-файла. В режиме отладки любое изменение, не влияющее на сигнатуры, будет даже применено мгновенно, без необходимости перезапуска (конечно, относится только к приложениям с длительным выполнением).

Почему ваш нынешний подход не работает? В вашем вопросе недостаточно информации, чтобы быть уверенным. Несколько вариантов, основанных на том факте, что ключевое сообщение об ошибке «недоступно»:

  • Вы явно сказали eclipse, что не хотите, чтобы пакет recipe_nomodule считался доступным для кого-либо, кроме проекта, который его создал. Я сомневаюсь, что ты сделал это.
  • Он настроен как jar на основе модуля (с файлом информации о модуле), и в этом случае вам придется экспортировать пакет в файл module-info.java.
  • Класс не был помечен public в то время, когда вы создали файл jar, даже если он есть сейчас (это возвращается к: Не используйте файлы jar, таким образом никакие обновления не будут распространяться, и это очень раздражает).

В более общем случае, если вы хотите поставлять эти концепции полностью отдельно, вам нужно начать отвечать на вопросы о том, как вы хотите, чтобы ваш файл jar распространялся, вам нужно зарегистрироваться в sonatype/mavencentral или какой-либо другой организации, которая распространяет открытый исходный код, вы нужно изучить maven и многое другое. Вероятно, не стоит вдаваться в это, особенно учитывая, что проекты «для развлечения» / «для тренировки» не будут приняты.

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