Вопрос по eclipse, scala – Редактор не содержит основной тип

87

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

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

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

Ваш Ответ

30   ответов
35

если вы очистите свое рабочее пространство и восстановите свой проект.

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

Редактировать: Код отлично работает в Eclipse

@ Helen In Eclipse = & gt; Проект = & gt; Очистите, вы можете очистить проекты, восстановление будет выполнено автоматически ... Таким образом, вам не нужно закрывать и снова открывать проект.
Спасибо @nuriaion и @Fabian, да, возобновление проекта заставило его работать. Еще раз спасибо за ваши советы. Helen Neely
Открытие и закрытие проекта Scala дало мне: ошибки произошли во время сборки. Ошибка создания экземпляра builder "ch.epfl.lamp.sdt.core.scalabuilder". Плагин "ch.epfl.lamp.sdt.core" не удалось создать экземпляр класса "scala.tools.eclipse.Builder". Не удалось инициализировать класс scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder Плагин & quot; ch.epfl.lamp.sdt.core & quot; не удалось создать экземпляр класса "scala.tools.eclipse.Builder". Не удалось инициализировать класс scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder
Сделал такой же опыт. Плюс закрытие и открытие проекта мне иногда требовалось.
1

Попробуйте следующие шаги:

Go to project properties Go to java Build Path Go to Source tab and add project's src folder

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

2

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

3

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

solution

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

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

2

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

под ним вы найдете папку src, которую вы щелкаете правой кнопкой мыши, выбираете -> опция класса

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

0

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

1

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

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

В моем конкретном «Hello World» причиной этой проблемы был тот факт, что мойmain() Метод был внутри Scalaclass.

I put the main() method under the Scala object and the error disappeared.

Это потому что Скалаobject в терминах Java это сущность, содержащая только статические члены и методы.

Вот почему Javapublic static void main() в Скала должны быть помещены подobject.

(Scalaclass может не содержать статических элементов внутри)

2

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

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

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

пожалуйста, убедитесь, что файл java создан в src / main / java

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

18

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

right-click ваша папка, - & gt;build Path - & GT;Use as source Folder

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

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

& Quot; & Quot; & Quot; & Quot; & Quot; right-click ваша папка, - & gt;build Path - & GT;Use as source Folder & Quot; & Quot; & Quot; Спасибо

Это решает проблему,

1

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

Идти кJava Buildpath > Order and Export и переместить библиотеку Scala наверх

1

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

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

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

<buildSpec>
</buildSpec>

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

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

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

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

6

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

  1. My .java files were not linked and
  2. they were not placed in the 'src' folder.

Вещи, которые я сделал:

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

  • Deleted the original 'src' folder which was empty using 'Remove' option
  • Added the source that contained my source .java files using the 'Add Folder' option

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

0

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

static void main(String[] args) 

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

3

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

Во-первых, исключите пакет: Нажмите правой кнопкой мыши на исходный пакет & gt; & gt; Путь сборки & gt; & gt; исключать

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

0

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

Обнаружена ошибка в: Eclipse Neon

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

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

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

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

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

C: Пользователи & gt; Mikes Laptop & gt; рабочая область & gt; .metadata & gt; .plugins & lt; --- объединить плагины здесь

1

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

0

Файл & gt; & gt; Импорт & gt; & gt; Существующие проекты в рабочую область & gt; & gt; Выберите Архив архива & gt; & gt; Найдите и найдите файл & gt; & gt; Конец. Если он уже импортирован каким-либо другим способом, удалите его и попробуйте таким образом. У меня была та же проблема, пока я не попробовал это.

1

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

1

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

0

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

  1. Backup all your .java files to some other location
  2. delete entire java project
  3. Create new java project by right click on root & click new
  4. restore all the files to new location !!
0

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

21

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

26

Вы должны убедиться, что ваши файлы .javaare in the Папка .src в затмении. У меня была точно такая же проблема, пока я не понял ее.

87

В Eclipse обязательно добавьте исходную папку в свойствах проекта - & gt; путь сборки Java - & gt; источник. В противном случае функция main () может быть не включена в ваш проект.

Обратите внимание, что это также может быть достигнуто путем перетаскивания файлов в & quot; src & quot; в представлении проводника папок.
Это решило мою проблему, но после закрытия и открытия проекта.
3

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

enter image description here

3
***

Just close and reopen

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

0

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

Похожие вопросы