Редактор не содержит основной тип

79

Простой пример кода Scala на веб-сайте Scala, но при попытке его запустить встретил раздражающую ошибку.

Вот код: http://www.scala-lang.org/node/45. При запуске на Eclipse я получил это сообщение: "Редактор не содержит основного типа", который предотвращает его запуск.

Есть ли что-нибудь, что мне нужно сделать... i.e разбить этот файл на несколько файлов или что?

Теги:

32 ответа

35
Лучший ответ

У меня эта проблема много с Eclipse и Scala. Это помогает, если вы очищаете свое рабочее пространство и перестраиваете свой проект.

Иногда Eclipse не распознает, какие файлы он должен перекомпилировать: (

Изменить: Код отлично работает в Eclipse

  • 4
    Сделал такой же опыт. Плюс закрытие и открытие проекта мне иногда требовалось.
  • 0
    Спасибо @nuriaion и @Fabian, да, возобновление проекта заставило его работать. Еще раз спасибо за ваши советы.
Показать ещё 2 комментария
75

В Eclipse убедитесь, что вы добавили исходную папку в свойства проекта → путь сборки java → source. В противном случае функция main() может не включаться в ваш проект.

  • 0
    Обратите внимание, что это также может быть достигнуто путем перетаскивания файлов в «src» в представлении проводника папок.
  • 0
    Это решило мою проблему, но после закрытия и открытия проекта.
23

Вы должны убедиться, что ваши .java файлы находятся в папке .src в eclipse. У меня была такая же проблема, пока я не понял.

19

Более простой способ - закрыть проект и снова открыть его!

13

Просто убедитесь, что папка, в которой вы работаете, добавлена ​​в построенный путь:

right-click Ваша папка, → build PathUse as source Folder

и теперь он должен найти main в нем

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

5

У меня была та же проблема. Я пробовал всевозможные вещи. И я узнал, что

  • Мои файлы .java не были связаны и
  • они не были помещены в папку 'src'.

Что я сделал:

Свойства проекта → Путь сборки Java → Источник

  • Удалена исходная папка 'src', которая была пуста, используя параметр "Удалить"
  • Добавлен источник, содержащий мои исходные .java файлы с помощью опции "Добавить папку"

Это решило ошибку.

3
***

Просто закройте и снова откройте

*** ваш проект в затмении. Иногда возникают проблемы с привязкой. Это решило мою проблему

3

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

Изображение 6070

2

Вы можете попробовать запустить основную функцию из боковой панели eclipse.

Изображение 6071

  • 0
    Когда я это делаю, я получаю сообщение об ошибке: <project root> [in Tut_RMI] does not exit . (Имя проекта Tut_RMI ) Является ли это имя проекта недействительным?
2

вам следует создать файл

выбрав с правой стороны имя файла,

под которым будет найден src-папка их правой кнопкой мыши select → class option

их файл должен быть создан

2

Быстрое решение:

Во-первых, исключите пакет: Щелкните правой кнопкой мыши исходный пакет → Путь сборки → Исключить

Затем включите его обратно: Щелкните правой кнопкой мыши исходный пакет → Путь сборки → Включить

2

Этот код действителен. Вы пытались скомпилировать его вручную с помощью scalac? Кроме того, вы назвали свой файл "адресной книгой", все строчные, как имя объекта?

Кроме того, я обнаружил, что Eclipse по какой-то причине устанавливает основной класс как ".addressbook" вместо "адресной книги".

  • 0
    Спасибо, Даниэль, да, файл называется «адресная книга», все строчные. Попробуем открыть проект, чтобы посмотреть, поможет ли это.
1

Если это проект maven, пожалуйста, проверьте, что файл java создан в src/main/java

Если вы не получаете, пожалуйста, измените путь JRE и создайте java файлы в указанной структуре папок

1

Это может быть проблемой в пути Java Build. Попробуйте выполнить следующие шаги:

  • Перейти к свойствам проекта
  • Перейти к java Путь сборки
  • Перейдите на вкладку "Источник" и добавьте папку проекта src

Это должно решить проблему.

1

запустите "eclipse -clean -refresh" из командной строки. Это устранило проблему для меня, когда все другие решения не удались.

1

У меня была та же проблема. У меня был основной класс из пакета src, в другой папке. Я перемещаю его и исправляю папку и решаю

1

Убедитесь, что ваш .java файл присутствует либо в пакете str, либо в другом пакете. Если файл java с основной функцией находится за пределами всех пакетов, эта ошибка возникает.

1

Может быть, файл, который вы создали, находится вне папки src (source). Попытка вызвать объект класса (из файла, находящегося в папке src) из файла .java за пределами исходной папки, приводит к той же ошибке. Скопируйте файл .java в исходную папку, а затем создайте его. Ошибка исчезнет.

1

У меня была эта проблема с проектом Java, который я импортировал из файловой системы (под Eclipse Helios). Вот подсказка: код src вообще не компилировался, так как не появилось каталога "bin".

Мне пришлось создать проект Java с нуля (с помощью мастера), а затем сравнить .project файлы нерабочих и рабочих проектов.

Проект, предоставляющий "Редактор не содержит основного типа", имел это как "buildSpec" в файле .project:

<buildSpec>
</buildSpec>

Но рабочий проект имел это как "buildSpec":

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>

Я скопировал это, и импортированный проект работал.

Я знаю, что мой ответ для Java, но то же самое может быть проблемой для вашего проекта Scala.

1

Правильный ответ: библиотека Scala должна быть до библиотеки JRE в пути построения.

Перейдите в Java Buildpath > Закажите и экспортируйте и переместите библиотеку Scala в начало

1

У меня тоже была эта проблема. Решение состоит в том, чтобы убедиться, что eclipse создало проект как проект Java. Просто создайте новый проект Java и скопируйте свой класс в папку src (и импортируйте возможные зависимости). Это должно устранить проблему.

  • 0
    Спасибо KullDox, за ваш комментарий. Я давно решил проблему, но надеюсь, что кто-то еще найдет решения здесь полезными.
0

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

0

По причине ошибки: "Редактор не содержит основного типа"

Ошибка, встречающаяся в: Eclipse Neon

Операционная система: Windows 10 Pro

При копировании исходных папок с большого пальца и оставьте папку Eclipse_Projects.metadata.

Помимо новой установки, вам нужно будет убедиться, что вы объедините файлы из (Thrumb-drive) F: Eclipse_Projects.metadata.plugins.

Эти плагины - это биты и куски кода библиотеки, взятые из SDK при создании класса. Я действительно все зависит от того, что вы импортируете javax.swing. *; ----- в свой файл. Поскольку вы передаете его, обязательно соедините ------ Eclipse_Projects.metadata.plugins ------ вручную с простой копией и вставкой, принимая при этом функцию пропуска для уже существующих плагинов в вашей папке.

Для окон 10 вы можете найти свои рабочие папки по аналогичной схеме иерархии файлов.

C: Пользователи > Mikes Laptop > workspace > .metadata > .plugins < --- merge плагины здесь

0

В моем конкретном случае "Hello World" причиной этой проблемы был тот факт, что мой метод main() находился внутри Scala class.

Я поместил метод main() в Scala object, и ошибка исчезла.

Это потому, что Scala object в терминах Java - это объект с только статическими элементами и методами внутри.

Вот почему Java public static void main() в Scala должен быть помещен под object.

(Scala class не может содержать статический код внутри)

0

Попробуйте "Обновить проект". Как только я это сделал, появилась опция "Запуск от Java".

0

У меня тоже есть эта проблема после того, как я изменил исходную папку. Решение, которое работало, - это просто отредактировать файл и сохранить его.

0

Еще одна вещь, которую нужно проверить: убедитесь, что ваш исходный файл содержит правильное объявление пакета, соответствующее его подкаталогу. Ошибка, упомянутая OP, может быть видна при попытке запустить "основной тип", объявленный в файле в подкаталог, но отсутствует инструкция пакета.

0

Файл → Импорт → Существующие проекты в рабочее пространство → Выберите "Архивный архив" → Просмотрите и найдите файл → Завершить. Если он уже импортировал какой-то другой способ, удалите его и попробуйте так. У меня была такая же проблема, пока я не попробовал это.

0

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

0

Выполните следующие шаги:

  • Резервное копирование всех ваших .java файлов в другое место
  • удалить весь проект java
  • Создайте новый проект java, щелкнув правой кнопкой мыши по корневому каталогу и нажмите новый
  • восстановить все файлы в новое место!
0

Вам нужно найти файл .java в папке src (в Project Explorer Eclipse), а затем запустить. Я просто добавил файл .java в проект, и он не находится в папке src, поэтому у меня такая же ошибка. Я положил его на src, затем он был создан.

0

Для меня в Eclipse 3.6 эта проблема возникает, когда мой основной метод не является общедоступным. Я вызвал проблему, имея основной метод:

static void main(String[] args) 

Dubugger не смог обнаружить это сам. Я очень удивлен, что Eclipse упустил это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню