Подтвердить что ты не робот

Вызов класса в другом проекте Eclipse

У меня есть проект "A", и мне нужно вызвать класс "c" из другого проекта "B".

Я сделал следующее. Нажмите "A" → "Свойства" → "Путь сборки" → и на одной вкладке Java Source я выбран проект B. → Принять

Теперь я могу создавать объекты класса "c", но когда я запускаю проект, я получаю "ClassNotFoundException"

Update

Я продолжаю получать java.lang.ClassNotFoundException.

В "JSF" → Свойства → Путь сборки → Проекты --- > Добавлен проект:

enter image description here

В Run → Run Configurations → ClassPath у меня было:

enter image description here

и теперь я добавил проекты "JIRA" и "JIRA dependencies", enter image description here

Проект JIRA имеет следующие зависимости:

enter image description here

И я получаю следующую ошибку:

enter image description here

но этот класс находится в M2_REPO:

enter image description here

Решение

Я добавляю "зависимости JIRA" только в JAR без Maven: enter image description here и теперь он запускается.

4b9b3361

Ответ 1

Вам нужно добавить проект B в конфигурацию Run, используемую проектом A. В меню Run → Run configurations..., добавьте проект B в вкладку "путь к классам" вашей конфигурации запуска.

Ответ 2

Вы должны добавить другой проект на вкладке "Проект" или добавить папку класса проекта на вкладке "Библиотеки".

example

Ответ 3

Поместите проект B на путь сборки, затем выполните проект "Очистить" из меню "Проект"... и затем используйте его.

-

Click in "A" -->Properties -->Build Path --> Projects ---> Add the Project --->Ok

Ответ 4

Чтобы вызвать методы из классов в Java, вам сначала понадобится экземпляр класса.

Итак, в вашем коде вам нужно сделать что-то вроде следующего:

  • экземпляр экземпляра:

    MyClass instanceOfMyclass= MyClass.getInstance();

  • вызов метода:

    instanceOfMyClass.someFunction(...);

Это означает, что когда вы вызываете getInstance(), он возвращает экземпляр MyClass, если такой экземпляр уже существует, или он создаст новый, если нет экземпляра. После приобретения экземпляра класса вы просто называете его методами, если у них есть соответствующие модификаторы доступа.

В соответствии с java doc java.lang.classNotFoundException происходит в следующих случаях:

  • Когда мы пытаемся загрузить класс с помощью метода MyClass.someMethod(), а MyClass недоступен в пути к классам.
  • Когда Classloader пытается загрузить класс с помощью метода findSystemClass().
  • При использовании метода loadClass() класса ClassLoader в Java.

Чтобы решить вышеизложенное исключение, нам необходимо:

  • Сначала найдите файл jar, в котором присутствует файл проблемного класса, например, в случае "com.mysql.jdbc.driver" его mysql-connector-java.jar. Если вы не знаете, как найти файл jar определенного класса, вы можете просто сделать "Ctrl + T" в Eclipse и ввести имя класса. Он отобразит всю банку в том порядке, в каком они появляются в пути класса eclipse.

  • Проверьте, содержит ли ваш путь к классу этот jar, если ваш путь к классам не содержит jar, тогда просто добавьте этот класс в свой путь к классам.

  • Если это присутствует в вашем пути к классу, тогда существует высокая вероятность того, что ваш путь к классам будет переопределен, или приложение использует путь к классам, указанный в файле jar или start-up script, и чтобы исправить это, вам нужно найти точный путь к классам используемый вашим приложением.

Ответ 5

Если B находится в том же рабочем пространстве и alos open, вы должны поместить int в "Projects", а не "Source". Если вы хотите сделать "более независимым", вам нужно экспортировать B.jar и добавить его в "Библиотеки"

Ответ 6

Также рассмотрите использование maven. Это очень полезно, если у вас есть многомодульные проекты. Просто добавьте зависимости другого проекта, и maven позаботится об отдыхе..!

Ответ 7

создайте проект "A" как банку и добавьте эту банку в путь сборки "B". Затем вы можете вызвать класс, который хотите, и импортировать имя этого класса с именем calss.