Ошибка: выделение не содержит основного типа

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

Я получаю сообщение об ошибке selection does not contain a main type.

Я пробовал несколько способов запуска:

  • Некоторые говорят, чтобы снова запустить eclipse, пробовал это с десяток раз.
  • Где-то еще кто-то указал, чтобы открыть новый проект и сделать путь сборки к старому проекту.

Тоже не сработало.

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


person user2321611    schedule 25.04.2013    source источник
comment
У вас есть public static void main(String[] args) где-нибудь?   -  person    schedule 26.04.2013
comment
У меня есть имя публичного класса, расширяющее JFrame   -  person user2321611    schedule 26.04.2013
comment
я не знаю, что вызывает это или как это решить, но это наверняка случилось со мной с публичными классами, у которых есть основной метод (конечно, правильно объявленный). Просто хотел отметить, что это может быть не так просто, как вы думаете   -  person jambriz    schedule 26.04.2013
comment
Я думаю, что все исследования указывают на то, что он пытается запустить некоторые классы без основного метода. Мы продолжим расследование.   -  person aran    schedule 26.04.2013
comment
Возможно, это проект maven, поэтому щелкните имя своего проекта и нажмите следующие клавиши alt + f5, чтобы обновить проект.   -  person André Luís Tomaz Dionisio    schedule 05.01.2018


Ответы (20)


Я надеюсь, что вы пытаетесь запустить основной класс таким образом, см. скриншот:
скриншот контекста файла Eclipse  меню

Если нет, то попробуйте этот способ. Если да, убедитесь, что ваш класс, который вы пытаетесь запустить, имеет основной метод, то есть такое же определение метода, как показано ниже:

public static void main(String[] args) {
    // some code here
}

Я надеюсь, что это поможет вам.

person NoNaMe    schedule 26.04.2013

Щелкните правой кнопкой мыши папку, в которую вы поместили свой основной класс, затем щелкните Build Path --> Use as Source Folder.

Наконец, запустите свой основной файл как java-приложение. Надеюсь, эта проблема будет решена.

person Rashid    schedule 11.04.2014
comment
это сработало для меня. У меня был исходный код Java Fundamentals от Deital... в главах есть папки и код Java. Я переместил их все в исходный код, но мне все равно нужно сделать этот шаг, чтобы он заработал. - person Ashu; 06.09.2018
comment
Исходная папка и целевая папка (куда Eclipse помещает ваш основной класс) — это разные вещи. Вы имеете в виду, где вы помещаете исходный файл для основного класса. - person Gangnus; 24.04.2019
comment
Это помогло мне решить проблему, когда я установил eclipse и впервые запустил программу. - person Devrath; 28.07.2019
comment
Это изменило пакет всех файлов классов на пакет по умолчанию. - person nsandersen; 12.01.2021

Все остальные ответы действительны, однако, если у вас все еще есть проблема, у вас может не быть вашего класса в папке src, и в этом случае Eclipse может не видеть его как часть проекта. Это также вызовет то же сообщение об ошибке, которое вы видели.

person zen    schedule 20.09.2013
comment
Спасибо, файлы, отсутствующие в папке src, были для меня проблемой. - person Dois; 01.02.2015

Точкой входа для Java-программ является метод:

public static void main(String[] args) {
    //Code
}

Если у вас его нет, ваша программа не запустится.

person Community    schedule 25.04.2013

Я решил это, добавив новую исходную папку и поместив свой java-файл в эту папку. "Исходная папка" - это не просто папка, я считаю. это какой-то специальный тип папки для java/eclipse, и его можно добавить в eclipse, щелкнув правой кнопкой мыши проект -> свойства -> путь к сборке Java -> источник и добавьте папку

person mishal153    schedule 22.04.2014
comment
Я добавил проект java к его собственному исходному пути, а затем получил еще одну ошибку (не удалось найти или загрузить основной класс com...), но, по крайней мере, он немного продвинулся :). Трудно поверить, насколько плох Eclipse в этом отношении. - person nsandersen; 30.03.2021

Несколько вещей, чтобы проверить:

  1. У вас есть основной пакет? все ваши классы находятся в этом пакете?
  2. Используете ли вы основной класс с public static void main(String[] args)?
  3. Вы объявляете: package ; в вашем основном классе?
  4. Вы всегда можете очистить проект перед его запуском. В Eclipse - просто перейдите в Project -> clean, затем снова запустите приложение.
person Eyal Sooliman    schedule 06.03.2014

Я столкнулся с той же проблемой. Я исправил, щелкнув правой кнопкой мыши пакет -> свойства -> Путь сборки Java -> Добавить папку (выберите папку, в которой находится ваш код).

person Yang Zhang    schedule 01.09.2014
comment
Если это не другая версия, package должно быть project в указанном выше пути. - person Carcigenicate; 03.02.2015

Я запускаю eclipse из Ubuntu. Была такая же проблема, и я смог запустить программу через терминал. Поэтому я просто переместил существующий public static void main(String[] args) { чуть ниже объявления класса (затмение автоматически отформатировало его), и следующий запуск прошел успешно. Затем вернул основной метод туда, где он был раньше, и на этот раз он работал нормально.

person hipokito    schedule 30.12.2015
comment
Этот ответ четко указывает на некоторую ошибку Eclipse и успешно ее устраняет. Казалось бы, бессмысленное действие, упомянутое в ответе, у меня сработало, даже если очистка проекта не сработала, а все остальное было в порядке. Похоже, что Eclipse иногда сохраняет недопустимое состояние класса даже после очистки проекта и инициирует обновление только после редактирования и сохранения файла Java. Контекст: я скопировал некоторые файлы Java поверх существующих, после чего возникла проблема. - person miroxlav; 08.11.2018

У меня была эта проблема в двух проектах. Maven и командная строка работали, как и ожидалось, для обоих. Проблемы были специфичны для Eclipse. Два разных решения: Проект 1): переместите объявление основного метода наверх в классе, над всеми другими объявлениями, такими как поля и конструкторы. Сумасшествие, но это сработало. Проект 2): Решение для Проекта 1) не устранило проблему. Однако удаление импорта ломбоков и явное написание метода получения решили проблему.

Вывод: Eclipse и/или плагин lombok имеют/имеют ошибку.

person Øyvind Roth    schedule 01.06.2019
comment
У меня была такая же проблема с импортом пакета AWS SDK. Мне пришлось удалить import com.amazonaws.regions.Regions; из основного класса, чтобы иметь возможность запускать приложение из Eclipse. Я использую AWS Java SDK версии 1.11.729. - person gparis; 26.02.2020

Щелкните правой кнопкой мыши> Запустить AS> Запустить конфигурации

На этом экране, если ваше текстовое поле «Основной класс» пусто, добавьте имя класса, нажав кнопку «Поиск» в правой части текстового поля, и выберите файл класса. Затем нажмите кнопку «Выполнить» в нижней части экрана конфигурации. Вот и все

person Yithirash    schedule 04.03.2019

Вы должны поместить все свои файлы (file.java) в корневую папку SRC.

person Dev M    schedule 28.02.2014

Убедитесь, что main в public static void main(String[] args) в нижнем регистре. Для меня это не сработало, когда у меня было это с большой буквы.

person sander    schedule 21.09.2018

Поместите файл основного класса Java в папку src/main/java и проверьте, нет ли ошибок в «Пути сборки Java», щелкнув правой кнопкой мыши проект и выбрав Java Build Path->Source.

person Rajiv Ranjan    schedule 15.05.2019

Если вы работаете с проектом Maven, вы должны понимать, что расположение каталогов немного отличается. В этом случае имя пакета должно быть src/main/java.

Для этого обновите исходную папку, щелкнув правой кнопкой мыши проект корневая папка -> свойства -> путь сборки java -> вкладка исходного кода. Здесь удалите все другие исходные папки, так как они могли быть добавлены неправильным образом. Теперь выберите проект /src/main/java в качестве исходной папки. Добавьте и примените изменения. Теперь обновите свое рабочее пространство с помощью F5.

Это должно решить проблему нераспознавания основного типа.

person Abhishek Rathore    schedule 14.08.2019

Выглядит слишком поздно, чтобы ответить, но может помочь кому-то,

Имея ту же проблему, я решил ее, выполнив следующие шаги:::::

Выберите «Основной класс в eclipse», затем нажмите «Окно» в строке меню,

Window-->Show view-->Select Outline

Щелкните правой кнопкой мыши main(String[]):void, затем Run As --› java Application

Ссылка на изображение для метода Running Main

Делая это, вы можете запустить основной метод напрямую. Это сработало для меня

person Zakir Hussain    schedule 20.03.2021

Я столкнулся с той же проблемой и обнаружил, что есть дополнительная пара фигурных скобок (фигурные скобки), заключающая public static void main(String args) {...}. Этот метод действительно должен находиться в верхней части класса и не должен заключаться в фигурные скобки. Кажется, что при работе в Eclipse вокруг этого метода можно получить фигурные скобки. Это может быть только один из способов увидеть эту проблему при работе с Eclipse. Удачного кодирования!

person shivesh suman    schedule 30.04.2014

У меня это случалось неоднократно после добавления изображений в проект в Eclipse и включения их в путь сборки. Решение заключалось в том, чтобы щелкнуть правой кнопкой мыши класс, содержащий метод main, а затем выбрать «Запуск от имени» -> «Приложение Java». Кажется, что когда вы добавляете файл в путь сборки, Eclipse автоматически предполагает, что этот файл находится там, где находится метод main. Проходя через меню «Запуск от имени» вместо простого нажатия зеленой кнопки «Запуск от имени», вы можете указать правильную точку входа.

person Keven M    schedule 26.05.2014
comment
Что, если он говорит это, несмотря на то, что есть основной метод? - person trusktr; 12.07.2014

При сохранении файла убедитесь, что он имеет расширение .java. Если это не так, Eclipse не сможет прочитать его как java-файл.

person KC McLaughlin    schedule 08.09.2014

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

Я щелкнул правой кнопкой мыши каждый класс, Refactor и Move To, и принял предложенное имя пакета.

Затем, как обычно, Run As... Java Application.

И это сработало :)

person likejudo    schedule 29.06.2020

Вы также должны проверить это. Перейдите к пути сборки Java -> путь сборки конфигурации, убедитесь, что системная библиотека JRE [Java SE -версия] отмечена флажком, попробуйте снова запустить код. Это исправило мою проблему.

person Anshul Khatri    schedule 02.03.2021