Помилка: не вдалося знайти або завантажити основний клас у IntelliJ IDE


151

Я початківець в Java і намагаюся запустити свій код за допомогою IntelliJ, який я щойно встановив як свій IDE з JDK 1.7. Наступний фрагмент коду зберігає навіть не компілюючи і продовжує подавати мені помилку:

Error: Could not find or load main class libTest

Код

import java.lang.Integer;
import java.lang.String;
import java.lang.System;
import java.util.*;

class book {

    private String name = "trial";
    private int bookCode=1;
    private int issued=0;

     public void Issue(){
         if(issued==0) {
             issued=1;
             System.out.println("You have succesfully issued the book");
         }
         else {
             System.out.println("The book is already issued. Please contact the librarian for further details");
         }
    }

    public int checkCode() {
        return bookCode;
    }

    String readName() {
        return name;
    }

    public void setName(String newName){
        name=newName;
    }

    public void setBookCode(int newCode){
        bookCode=newCode;
    }
}

class library {
    private ArrayList books=new ArrayList();

    public void getList(){
        for(int bk:books){
            String bName=books(bk).readName();
            System.out.println((bk+1)+")  "+bName);
        }
    }
}

public class libTest{
    public static void main(String[] args){
        library newLib= new library();
        System.out.println("code working");
   }
}

Чи є якісь зміни, які мені доведеться внести в налаштування компілятора ?? Або це код.


2
Як називається вихідний файл? Це libTest.java?
QuantumMechanic

import java.lang...Це відбувається автоматично для занять у langпакеті.
Ендрю Томпсон

Як згадував QuantumMechanic, ваш основний клас повинен бути у файлі, названому саме так. Отже, libTest повинен знаходитись у файлі java під назвою libTest.java, інакше компілятор java поскаржиться. Також ви створили джерело через IDEA, чи створили новий проект IDEA над існуючим джерелом?
mcfinnigan

спробував імпорт java.lang не мав значення
Confused Mailman

вони однакові. Чи є якась інша причина, чому таку помилку слід позначити?
Плутати Поштальона

Відповіді:


178

Це може допомогти:

1) Меню "Збірка" -> " Rebuild Project". Іноді Intellij не переписує класи, тому що вони вже є, таким чином ви просите Intellij переписати все.

2) Меню "Запустити" -> " Edit configuration" -> видалити профіль -> додати профіль назад ("Application", якщо це програма Java), виберіть основний клас зі спадного меню "Main Class".

3) меню "Збірка" -> " Rebuild Project".


9
У мене був абсолютно новий проект в IntelliJ, і він не запускався. Rebuild Projectпрацював на мене!
Danny Harding

2-й варіант працював для мене. Але видаліть профіль конфігурації, а потім клацніть правою кнопкою миші свій клас -> запустити
NoName

2
"Build" menu -> "Rebuild Project- зробив роботу! Спасибі
Ян Хонський

1
Перший варіант rebuild projectпрацював на мою проблему. Дякую!
khwilo

1
Я видалив .idea, .mvn та інші цільові каталоги, після чого перезапустив IntelliJ. Пішов у журнал подій, додав проект як проект Maven, а потім слідував крокам, згаданим тут @Kishore. Це працює зараз.
Сонячний Шехар

105

Якщо жоден з перерахованих вище відповідей не працював для вас, просто закрийте свій інтелектуальний IDE та видаліть файл та папку IntelliJ IDE з кореня проекту:

rm -rf .idea *.iml 

Потім відкрийте проект з IntelliJ. Це має працювати зараз.


1
Це працювало для мене. Я також повторно імпортував свій проект в IntelliJ, але для параметра "Групові модулі" я використав "використання кваліфікованих імен" (замість "використання явних груп модулів".
markhops

3
Видалення .ideaпапки завжди вирішує всі проблеми з IDE JetBrains :)
shelll

це працювало і для мене, я великий фанат Intellij, але вони також повинні навчитися робити прості речі.
Zwakele Mgabhi

Витрачено 30+ хвилин. нарешті, це мені довелося зробити, щоб справи працювали
vins

Тільки цей метод на цій сторінці працює для мене.
zionpi

82

Для мене рішенням було виправити вихідний каталог у налаштуваннях проекту. Перш ніж я використовував лише "ціль" для виводу проекту компілятора. Натомість я оновив його, щоб мати повний шлях, наприклад, D: \ dev \ sigplusjava2_68 \ target введіть тут опис зображення


10
це мені не допомогло
Павло

Можливо, що моє рішення тут насправді є тонким варіантом відповіді @ Ehsan нижче. Можливо, вказуючи цільовий каталог, він надає йому нове місце, в якому збирає всі об'єкти, по суті виконуючи ту саму роботу, що і Rebuild Projectвиконує.
Дядько Ірох

1
@UncleIroh Якщо це робилося так само, відновлення + читання конфігурації. виправили б проблему спочатку. Не вдалося, але ваше рішення зробило це.
гіперум

Це має бути прийнятою відповіддю. Завжди клопіть мене знову ..: p
Крістофер Сток

37

У мене була ця проблема, і я спробував усе, що знаходиться під сонцем, про що я міг подумати і на цьому сайті.

Жоден з моїх занять Java не збирався після того, як я вийшов з віддаленого відділення. Усі класи мали червоні Js за своїми іменами в Ієрархії проектів, а не синіми.

Зрештою, я спробував виконати цей підручник і кілька кроків спробував щось, що не описано, і вирішив проблему: https://www.jetbrains.com/help/idea/creating-and-managing-modules.html

Ось що я зробив:

  1. Файл goto | Структура проекту або натисніть Crtl + Shift + Alt + S
  2. Виберіть Модулі в розділі Налаштування проекту.
  3. На вкладці "Джерела" натисніть "Джерела" у рядку "Позначити як:".
  4. Натисніть кнопку Застосувати.

Чомусь у всіх моїх класах тоді були сині C.

Хтось із кращим розумінням того, як IntelliJ та / або IDE могли б пояснити це явище, але все, що я знаю, це зараз, що він може побачити всі класи і, що ще важливіше, головний, і запустити.


Це працювало для мене лише після того, як я закрив Intellij, вилучив папку .idea, після чого знову відкрив Intellij і виконав дії, описані вище.
Shell_Leko

14

Явно створити outпапку, а потім встановити вихідний шлях доC:\Users\USERNAME\IdeaProjects\PROJECTNAME\out

ПОДОБАЄТЬСЯ ЦЕ

здавалося, працює для мене, коли просто out, і очікувати, що IntelliJ зробить папку, не буде.


Також спробуйте IntelliJ створити нову конфігурацію запуску:

Знайдіть попередній, натиснувши

! [Редагувати конфігурації

потім видаліть його

введіть тут опис зображення

і вдарити добре.

Тепер (ВАЖЛИВИЙ КРОК) відкрийте клас, що містить ваш основний метод. Це, мабуть, найпростіше зробити, натиснувши на ім'я класу на лівій панелі проектів.

Дайте «ер Alt+ Shift+ F10і ви повинні отримати

ЦЕЙ

Тепер вдаримо Enter!!

Тада ?? (Це спрацювало?)


Функція конфігурації запуску працює, особливо якщо ви перемістили main()функцію з class Mainдо іншого класу. У цьому випадку відредагуйте конфігурацію запуску, як показано вище, та змініть значення "Основний клас" на ім'я свого класу (повністю кваліфіковано).
форумчатор

У мене є лише опція "Редагувати конфігурацію", вона не працює для мене (
Вер Нік

14

Недійсний кеш і перезапустіть інтелігент, він працював для мене. Перейдіть до "Файл", як показано на доданому малюнку


7

Я знаю, що це було задано деякий час тому, але я просто спотикався над цим питанням і думав, що мої висновки можуть допомогти іншим. Як вказувалося, повідомлення про помилку в основному є результатом виходу з папки. Це тому, що, коли ви намагаєтеся запустити програму, вона спочатку компілює код і ставить компільований результат у вихідне місце, а потім намагається завантажити компільований код з місця, що знаходиться поза. Якщо скомпільований код не в очікуваному місці, ви отримаєте помилку.

Особливо я хочу поділитися тим, що в деяких випадках код не компілюється (не будується), навіть якщо ваша конфігурація запуску задає "Збірка" в розділі "Перед запуском" панелі конфігурації.

Коли це може статися? Одна з ситуацій, яка може спричинити це, - це якщо ви використовуєте модулі та ви видаляєте каталог з модуля вручну. Наприклад, якщо у мене є модуль під назвою "foo", має бути каталог з ім'ям foo під поза / виробництвом. Якщо ви видалите її вручну, система збірки може не знати, що її потрібно перебудувати.

Ще гірше, якщо ви вибрали Build | Створіть модуль 'foo', він все ще може не відновити модуль. Якщо це так, вам слід вибрати файл у модулі, наприклад 'bar.java', а потім вибрати Створити | Перекомпілюйте "bar.java". Тепер вихідний каталог / виробництво / foo має бути відновлений.

Оскільки IntelliJ, як правило, знає про будь-які зміни, що відбуваються, це мене здивувало, і мені знадобилося трохи часу, щоб розібратися, тому я подумав, що поділюсь.


6

Перевірте свій модуль класу : я зіткнувся з цією проблемою в Intellij: у мене є багатомодульний проект Maven, проблема полягає в тому, що я керую класом, у якому не існує модуля в конфігурації, тому моя проблема виправлена, встановивши правильний модуль ( "редагування конфігурації" -> "клас використання модуля")

може це вам допоможе


Працював і для мене. Дякую! Щось, мабуть, пішло не так, коли встановлювали оновлення IntelliJ або плагін Scala. Згодом у вас виникає ця дивна проблема. Дуже дратівливий і трудомісткий. Сподіваємось, JetBrains знайде рішення.
Андре ван Делфт

6

Мені довелося позначити папку "src" як "Джерела". Після перезавантаження IntelliJ та відновлення проекту я міг запустити проект без додаткових проблем (див. Скріншот ). Редагування: Ви можете отримати доступ до вкладки "Структура проекту" через Файл-> Структура проекту або натисканням клавіш Ctrl + Shift + Alt + S.


1
Якщо у вас (як у мене) немає вкладки "джерела", вам слід додати новий модуль (натисніть зелений +) і вибрати основну папку як джерело. Нічого не буде перезаписано, і папка src стане синьою.
John ktejik

5

Відкрийте вкладку Модулі (натисніть Ctrl + Shift + Alt + S). У мене було два модулі в рамках одного проекту. Я вирішив проблему після видалення другого резервного модуля (див. Скріншот).введіть тут опис зображення


4

Я стикався з такими проблемами, коли клас знаходиться в папці за замовчуванням, тобто коли клас не оголошує пакет.

Тож я думаю, що package org.me.mypackage;виправлення пакета (наприклад, ) на вершині класу повинно це виправити.


чи я повторюю цей рядок коду ?? .. як я можу змінити його у випадку, якщо мені доведеться ??
Плутати Поштальона

Просто вживайте назву пакета, як-от так:package org.confused.mailman;
Хакан Серце

Ну, заява про пакет повинна відповідати туди, де IDE поставив файл. Якщо IDE не помістив файл у sourceBase /, org/confused/mailmanдодавши, що лінія пакета не допоможе.
QuantumMechanic

Я думаю, що IDE буде керувати цим і автоматично виправить це, якщо обрано рекомендоване виправлення.
Хакан Серце

не допомагає: / .. середовищі не здається, возитися з яким - або з змін я make..it кидає вище помилку і сидить спину і розслабляє
Confused Листоноша

3

Файл> Структура проекту> Модулі> Позначте папку "src" як джерело. Це має вирішити проблему. Також перевірте, чи вибрана остання мова, щоб не потрібно змінювати код або робити якісь зміни конфігурації. введіть тут опис зображення


2

У моєму випадку проблема, здавалося, пов’язана з оновленням IntelliJ. Коли я це зробив, я перезаписав файли зі старого IntelliJ файлами з нового IntelliJ (спільнота 2017 року до 2018 року). Після цього всі мої проекти були порушені. Я спробував усе в цій темі, і жоден з них не працював. Я спробував оновити gradle до останньої версії (4 до 4.8), і це не вийшло. Єдине, що працювало для мене, - це видалити всю папку IntelliJ та перевстановити її. Всі мої проекти працювали після цього.


Здається, це насправді це. Я використовую портативний intellij, тому я перейменував головну папку, як від idea\binбути, idea_old\binі перейменував папку налаштувань, в %user%\usernameяку .IntelliJIdea2018.2потрібно буде .IntelliJIdea2018.2_oldпотім знову витягнути поштовий файл intellij, щоб почати використовувати його як нову нову портативну версію (це версія 2018.2.1) з Spring Додаток для завантаження декількох відокремлених модулів (не пов'язаних в одному батьківському pom.xml), кожен - додаток для весняного завантаження з власними пом.xml та вуаля !!! Усі роботи, створена цільова папка, збирання перед запуском через панель інструментів весняного завантаження.
Anddo

2

Позначте каталог як вихідний каталог. Відкрито за допомогою Ctrl + Shift + Alt + S

введіть тут опис зображення


1

Для мене - я спробував кілька варіантів, описаних вище, не вийшло. Тоді я просто перейменував свій клас Application, і це, ймовірно, змусило IntelliJ створити свіжу банку і повідомлення про помилку почало змінюватися. Потім я перейменував його назад, і воно спрацювало.


1

Я спробував усі запропоновані тут хаки - безрезультатно. Наприкінці я просто створив нову програму Maven і вручну скопіював у неї - по одному - pom.xml та файли та ресурси java. Це все працює зараз. Я новачок в IntelliJ і абсолютно не вражений, але як легко перевести його в нестабільний стан.


Вам потрібно закрити intellij, видалити папку .idea (можливо, прихований файл); потім знову відкрийте папку в intellij - вона повторно реалізує проект intelli на основі конфігурації maven / grade.
Джеремі


1

Я успадкував купу файлів .JAVA з інших місць і не міг зрозуміти, як змусити їх працювати в будь-якому IDE. Зрештою, мені довелося перейти до командного рядка, де був і запускається файл Main.JAVA javac Main.java. Це створило купу файлів .CLASS. Потім IDE змогли зрозуміти, що робити.


1

Я отримав цю помилку під час використання Scala / SBT . IntelliJ не зміг знайти основного класу, хоча все було налаштовано правильно. Моє рішення: видаліть <user>/.sbt/<version>/plugins/targetпапку та перезапустіть IntelliJ.


1

Я використовую IntelliJ з Spring і мій основний клас загорнуто в JAR. У діалоговому вікні конфігурації Run / Debug я повинен був позначити "Включити залежності" із "наданим" областю "


1

Ми знаходимось у файлі / структурі проекту. Відповідь може бути:

Папка, вказана як "корінь вмісту", потребує дочірньої папки, де знаходиться код. Плюс знайдіть кнопку, яка позначає код виключеним, а не. Не слід плутати прапорець, який констатує виключені, не повідомляючи, на якій фазі і що ** Чи компілятор виключає або виключає час виконання? Ви приречені на тест і багато. Тож не той галочок, а значки та кольори.

Як ідея, нам потрібно зламати, як спочатку думали, що це працює. Вони ніколи не змусили його працювати спочатку і почали додавати речі в стилі передчасної кодакуляції. Пройшло так багато років, і ви не можете очікувати жодних покращень. Але як вилікування, ми можемо зламати якийсь спосіб виправити це кожного разу.


1

Інша річ, яку ви можете перевірити тут, - це фактична команда, яка передається JVM, і переконайтесь, що вона виглядає нормально. Прокрутіть до верхньої частини консолі Run, це повинен бути перший рядок.

Пробіли в полі Ваші параметри VM Options (Конфігурація запуску) призведе до неправильної команди запуску програми і може призвести до цього повідомлення про помилку

-DsomeArgument="arg with space must be quoted"

Дякую ! Це працювало для мене !!
Jcoder

0

Робота над рішенням Бреда Турека ... Один із шаблонів проектів IntelliJ Java за замовчуванням очікує, що файл під назвою Main визначає точку входу класу Main та main () методу. Якщо метод міститься в іншому файлі (і класі), змініть конфігурацію Run :

Запустіть вікно конфігурації

  1. Коли проект відкритий в IntelliJ, використовуйте меню « Запустити: редагувати конфігурації », щоб відкрити вікно конфігурації збірки.
  2. Якщо запис для основного класу не містить імені вашого файлу, що містить клас, що відкриває метод основного () введення, введіть правильне ім'я файлу. (Конфігурація на зображенні неправильна, тому на панелі конфігурації він червоний.)
  3. Головний мій метод () введення в клас (і файл) ScrabbleTest . Отже зміна Main class: на ScrabbleTest виправляє помилку виконання.

Як зазначають інші, вам доведеться ReBuild, використовуючи нову конфігурацію. Я використовую пакет, але IME, схоже, не має значення. Сподіваюся, це допомагає.


0

У моєму випадку в модулі build.gradle в призначенні mainClassName повинно бути вказано повне кваліфіковане ім’я класу, тобто. як вказано як ім'я пакета у файлі вихідного коду основного класу.


0

Просто встановіть проект (CTRL + F9) та подвійну перевірку (Змінити конфігурації), якщо у вас правильно встановлений Основний клас та модуль (якщо такі є)


0

Просте рішення - перейти до резервної папки в командному рядку, де знаходиться коренева папка проекту. У вас повинен бути встановлений SBT у вашій машині.

Якщо у вас встановлено sbt, будь ласка, запустіть команду "sbt package", це перекомпілює проект, якщо він буде успішним, поверніться до IntelliJ, що він буде працювати.


Ласкаво просимо до SO! Коли ви відповідаєте на відповідь, напередодні, чи вона правильна, спробуйте її трохи пояснити.
Девід Гарсія Бодего

0

У моєму випадку у мене були налаштовані (відносно) довгі аргументи vm. Перетворення цих аргументів (коли це можливо) на змінні середовища вирішило проблему для мене


У ваших параметрах VM не може бути пробілів, якщо ви не ставите «лапки» навколо аргументів
Yep

0

У моєму випадку програма працює добре, коли код спочатку був під каталогом / src під проектом. Пізніше я додав / main / java каталог після / src, тоді сталася помилка "Не вдалося знайти або завантажити основний клас ...". На той момент ви не можете додати /src/main/java/YourMain.java до конфігурації запуску. Що я зробив, це видалити конфігурацію запуску, потім клацніть правою кнопкою миші проект-> Відкрити налаштування модуля (або F4 після натискання панелі Проект) -> Налаштування проекту-> Модулі видалити (x) старий корінь вмісту та + Додати корінь вмісту, вибрати / src / main / java. Перебудуйте проект і він працює.


0

Ви, ймовірно, вказали б неправильний пакет, і ієрархія пакунків була б неправильною. Подивіться нижче

введіть тут опис зображення

Ідея підкреслить неправильний шлях у такому випадку.


0

У моєму випадку це проект Maven, я повторно імпортував maven (клацніть правою кнопкою миші на файл pom.xml і натисніть Reimport ), це все працювало негайно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.