Как исправить ошибку NoClassDefFoundError в IntelliJ Idea после того, как каждый раз пытался добавить stdlib.jar - PullRequest
1 голос
/ 29 апреля 2019

Я создал простой Java-проект в IntelliJ Idea 2018 и пытаюсь добавить stdlib к своему проекту.

Потратив часы на изучение онлайн, я попытался сделать это следующими способами:

  1. Создайте папку libs внутри папки src, скопируйте и вставьте stdlib.jar, щелкните ее правой кнопкой мыши и выберите Add as a Library;
  2. Перейти к Project Structure -> Modules -> Dependencies -> + JARs or directories ивыбрав stdlib.jar

Я обнаружил, что люди жалуются на это, но IntelliJ не предлагал для импорта, например, использовать StdOut.Однако, когда я добавляю файл stdlib.jar и упаковываю его, IntelliJ мгновенно предлагает импорт, который я должен использовать, и никаких ошибок вообще не возникает.

Тем не менее, когда я пытаюсь запустить проект, он неизменно попадает в NoClassDefFoundError.

Я потратил часы на изучение этого, пытаясь различными способами добавить библиотеку и импортировать ее, норезультат всегда один и тот же.

Я прикрепил экран печати, который показывает структуру моего текущего проекта, импорт и использование stdlib.jar.

Очень надеюсь, что вы, ребята, можете мне помочь,Спасибо!

Ссылка для скачивания stdlib-package.jar - https://introcs.cs.princeton.edu/java/stdlib/stdlib-package.jar

MANIFEST.MF

Manifest-Version: 1.0 
Main-Class: com.edgelab.hospital.Application

HOSPITAL_SIMULATOR_JAR.xml

<component name="ArtifactManager">
  <artifact type="jar" name="hospital-simulator:jar">
    <output-path>$PROJECT_DIR$</output-path>
    <root id="archive" name="hospital-simulator.jar">
      <element id="module-output" name="HospitalSimulator" />
    </root>
  </artifact>
</component>

stdlib-package.xml

<component name="libraryTable">
  <library name="stdlib-package">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/../stdlib-package.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES>
      <root url="jar://$PROJECT_DIR$/../stdlib-package.jar!/" />
    </SOURCES>
  </library>
</component>

1 Ответ

0 голосов
/ 29 апреля 2019

Итак, я наконец-то решил это.Вот что было не так: Ничего.

После поиска в Интернете я нашел (почему-то не могу опубликовать ссылку) ответ, в котором предлагалось скопировать мой код, удалить проект и создать новый.Итак, я удалил свой проект, создал новый с тем же кодом, создал те же артефакты, добавил stdlib-package.jar в качестве библиотеки и перестроил hospital-simulator.jar, и он заработал мгновенно.

Я не могуобъясните почему это работает, так как понятия не имею.Я буквально сделал то же самое в том же порядке.Надеюсь, это поможет кому-то, и спасибо всем, кто пытался помочь.

...