Как скомпилировать проект Java с IntelliJ и запустить в терминале (NoClassDefFoundError) - PullRequest
0 голосов
/ 22 сентября 2018

Мне нравится IntelliJ за его простоту использования и отличную функциональность IDE.Однако из-за характера моего проекта я хочу запустить соответствующие файлы .class через терминал после того, как все построено в IntelliJ.Моя структура выглядит следующим образом:

out/
|
|-production/
|  |
|  |-AILab2/
|     |
|     |-TTT/
|     |  |--Main.class
|     |  |--Constants.class
|     |  |--Deadline.class
|     |  |--pipe|
|     |  |--etc...
|     |
|     |-TTT3
|        |--Constants.class
|        |--Deadline.class
|        |--etc...
src
|
|-TTT
|  |--Main.java
|  |--Constants.java
|  |--Deadline.java
|  |--etc...
|
|-TTT3
   |--Constants.java
   |--Deadline.java
   |--etc...

Когда я захожу в терминал для запуска, я делаю следующее:

~/IdeaProjects/AILab2/out/production/AILab2/TTT$ java Main init verbose < pipe | java Main > pipe
Error: Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: TTT/Main (wrong name: Main)
Error: Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: TTT/Main (wrong name: Main)

Я искал в Интернете и не понимаюпричина этой ошибки.Я запускал предыдущие проекты таким же образом, но на этот раз он не работает.Благодарен за помощь.

Редактировать: Изменение команды терминала для включения TTT привело к тому же сообщению:

$ java TTT.Main init verbose < pipe | java TTT.Main > pipe
Error: Could not find or load main class TTT.Main
Caused by: java.lang.ClassNotFoundException: TTT.Main
Error: Could not find or load main class TTT.Main
Caused by: java.lang.ClassNotFoundException: TTT.Main

1 Ответ

0 голосов
/ 22 сентября 2018

Имя класса должно включать пакет (TTT.Main), и вы должны вызывать Java в родительском каталоге, в котором находится папка TTT.

И будьте уверены: он всегда работаеткак это.Единственное объяснение «раньше это так работало»: ваши классы не были в отдельном пакете!

Помимо этого, вы должны узнать, как классы находятся в пути к классам.Начните читать здесь https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...