Ошибка: выделение не содержит основной тип
Я пытаюсь запустить некоторые файлы Java в новом проекте. Поэтому я создаю проект, помещаю в него файлы и пытаюсь запустить основной файл, чтобы моя игра началась.
Я получаю ошибку, которая говорит selection does not contain a main type
,
Я пробовал несколько способов запустить его:
- Некоторые говорят, чтобы снова запустить затмение, пробовали это дюжину раз.
- Где-то еще кто-то указал открыть новый проект и сделать путь сборки к старому проекту.
Тоже не сработало.
Я почти уверен, что это должно сработать, потому что я провел его несколько часов назад в школе. Как мне заставить это работать? Заранее спасибо!
25 ответов
Надеюсь, что вы пытаетесь запустить основной класс таким образом, см. Снимок экрана:
Если нет, попробуйте этот способ, и если да, то убедитесь, что в вашем классе, который вы собираетесь запустить, есть метод main, т.е.
public static void main(String[] args){ // some code here}
такое же определение. Надеюсь, что это поможет вам.
Щелкните правой кнопкой мыши папку, в которую вы положили свой основной класс, затем нажмите Build Path
-> Use as Source Folder
,
Наконец, запустите ваш основной файл как Java-приложение. Надеюсь, что эта проблема будет решена.
Все остальные ответы верны, однако, если у вас все еще есть проблема, у вас может не быть своего класса в папке src, и в этом случае Eclipse может не видеть его как часть проекта. Это также вызвало бы то же сообщение об ошибке, которое вы видели.
Я решил эту проблему, добавив новую исходную папку и поместив свой Java-файл в эту папку. "исходная папка" - это не просто папка Это некоторый специальный тип папки для java/eclipse, который можно добавить в eclipse, щелкнув правой кнопкой мыши на проекте -> свойства -> Java buld path -> Source и добавить папку
Точкой входа для программ Java является метод:
public static void main(String[] args) {
//Code
}
Если у вас его нет, ваша программа не запустится.
Я столкнулся с той же проблемой. Я установил правую кнопку мыши на пакете -> свойства -> Путь сборки Java -> Добавить папку (выберите папку, в которой находится ваш код).
Слишком поздно отвечать, но может кому-то помочь,
Имея ту же проблему, я решил ее, выполнив следующие шаги :::::
Выберите Основной класс в eclipse, затем нажмите Окно в строке меню,
Window-->Show view-->Select Outline
Щелкните правой кнопкой мыши на
main(String[]):void
тогда
Run As
->
java Application
Сделав это, вы можете напрямую запустить основной метод. Это сработало для меня
Несколько вещей, чтобы проверить:
- У вас есть основной пакет? все ваши классы находятся под этим пакетом?
- Используете ли вы основной класс с public static void main(String[] args)?
- Вы заявляете: пакет; в вашем основном классе?
- Вы всегда можете очистить проект перед его запуском. В Eclipse - просто зайдите в Project -> clean и снова запустите приложение.
Я запускаю затмение из Ubuntu. Была такая же проблема и смог запустить программу через терминал. Так что я просто перенес существующий public static void main(String[] args) {
чуть ниже объявления класса (оно автоматически форматируется eclipse), и следующий запуск прошел успешно. Затем переместил метод main туда, где он был раньше, и на этот раз он работал нормально.
У меня была эта проблема в двух проектах. Maven и командная строка работали как ожидалось для обоих. Проблемы были специфичными для Eclipse. Два разных решения: Проект 1): Переместите объявление основного метода в начало класса, выше всех других объявлений, таких как поля и конструкторы. Сумасшедший, но это сработало. Проект 2): Решение для Проекта 1) не устранило проблему. Тем не менее, удаление импорта lombok и явная запись метода получения решило проблему
Вывод: Eclipse и / или плагин lombok имеют / имеют ошибку.
Щелкните правой кнопкой мыши> Run AS > Run Configuration
На этом экране, если текстовое поле "Основной класс" пусто, добавьте имя класса, нажав кнопку "Поиск" в правой части текстового поля и выберите файл класса. А затем нажмите кнопку "Выполнить" в нижней части экрана конфигурации. это оно
Если вы работаете с проектом Maven, вы должны понимать, что структура каталогов немного отличается. В этом случае имя пакета должно быть src / main / java.
Для этого обновите исходную папку, щелкнув правой кнопкой мыши корневую папку проекта -> свойства -> путь сборки java -> вкладка источника. Здесь удалите все другие исходные папки, так как они могли быть добавлены неправильно. Теперь выберите project /src/main/java в качестве исходной папки. Добавьте и примените изменения. Теперь обновите свое рабочее пространство с помощью F5.
Это должно решить проблему нераспознавания основного типа.
Убедитесь, что main
в public static void main(String[] args)
в нижнем регистре. Для меня это не сработало, когда у меня было это с большой буквы.
- ---> Выбрать
Source
вкладка см.source folders on build path
указывает на вашproject/src
путь. Если нет, выберитеAdd folder
и выберитеsrc
папка.
- ---> Под
Default output folder
видеть, что он указывает на вашProjectName/src
Поместите ваш основной файл класса Java в src/main/java
папку и проверьте, нет ли какой-либо ошибки в "Пути сборки Java", нажав правой кнопкой мыши на проекте и выберите Java Build Path->Source
,
Вы должны поместить все свои файлы (file.java) в корневую папку SRC.
При сохранении файла убедитесь, что он имеет расширение.java. Если этого не произойдет, Eclipse не будет знать, чтобы прочитать его как файл Java.
Вы также должны проверить это, перейдите к пути сборки Java -> путь сборки конфигурации, убедитесь, что системная библиотека JRE [Java SE -version] отмечена флажком, попробуйте запустить код еще раз. Это устранило мою проблему.
Я столкнулся с той же проблемой и обнаружил, что существует дополнительная пара фигурных скобок (фигурных скобок), заключающая в себе общедоступную статическую пустоту main(String args) { ... }. Этот метод должен действительно находиться в верхней области видимости в классе и не должен быть заключен в фигурные скобки. Похоже, что при работе в Eclipse возможно получить скобки вокруг этого метода. Это может быть только один способ увидеть эту проблему при работе с Eclipse. Удачного кодирования!
Я неоднократно делал это после добавления изображений в проект в Eclipse и включения их в путь сборки. Решением было щелкнуть правой кнопкой мыши класс, содержащий main
метод, а затем выберите Запуск от имени -> Приложение Java. Кажется, что когда вы добавляете файл в путь сборки, Eclipse автоматически предполагает, что файл находится там, где main
метод есть. Пройдя по меню "Запуск от имени" вместо простого нажатия зеленой кнопки "Запуск от имени", вы сможете указать правильную точку входа.
В моем случае я использовал ant для выполнения сборки и явно имел настройку класса в файле build.xml:
<target name="jar">
<jar destfile="ec-stats.jar" includes="bin/**,src/**">
<manifest>
<attribute name="Main-Class" value="my.package.MyStatistics" />
</manifest>
</jar>
</target>
Но он по-прежнему выдавал ту же ошибку, пока я не щелкнул правой кнопкой мыши папку в Eclipse и не выбрал
Build Path
->
Use As Source Folder
.
См. Также Ошибка: выделенный фрагмент не содержит основного типа.
Это можно решить в два этапа, если вы используете Eclipse IDE.
Шаг I. Щелкните правой кнопкой мыши проект и выберите Maven > Выбрать проект обновления .
Шаг II: Выберите проект и нажмите кнопку « ОК ».
Надеюсь, это поможет.✔
У меня возникла эта проблема, потому что учебный код, который я пытался запустить, не был в правильном пакете, хотя я ввел имя пакета в верхней части каждого класса.
Я щелкнул правой кнопкой мыши каждый класс, Refactor
а также Move To
и принял предложение имени пакета.
Затем, как обычно, Run As
... Java Application
.
И это сработало :)
Эта ошибка обычно возникает из-за того, что для проекта не выбран jdk. У меня была такая же проблема, и это сработало для меня.
Убедитесь, что файл вашего класса находится внутри папки src, затем выполните следующие шаги.
Шаг 1: Щелкните правой кнопкой мыши папку проекта Шаг 2: Путь сборки --> Настройте путь сборки Шаг 3: Выберите «Путь сборки Java» в левом углу окна Шаг 4: На вкладке «Заказ и экспорт» Шаг 5 : Нажмите любой из доступных jdk флажков, чтобы выбрать его. Шаг 6: Нажмите «Применить» и «Закрыть».
Solved the issue as following:
- Going in Properties of the Project
1.1) Inside "Java Compiler": chose the: "Compiler compliance level:" to a specific version of JDK (in my case I choosed 15)
1.2) Inside "Java Build Path", in the tab "Libraries", at the Modulepath: change the "JRE System Library" to the same of the version you choosed at step 1.1 above (in my case I picked JDK 15)
- Run the java file that contains a main method