Редактор не містить основного типу


92

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

Ось код: http://www.scala-lang.org/node/45 . Запустивши його на Eclipse, я отримав таке повідомлення: «Редактор не містить основного типу», що перешкоджає його запуску.

Чи потрібно щось робити ... тобто розбити цей файл на кілька файлів, чи що?

Відповіді:


37

У мене ця проблема багато в Eclipse і Scala. Це допоможе, якщо ви очистите робочу область і відновите свій проект.

Іноді Eclipse неправильно розпізнає, які файли він повинен перекомпілювати :(

Редагувати: Код чудово працює в Eclipse


4
Зробив такий самий досвід. Плюс закриття та відкриття проекту здавалося мені часом потрібним.
Фабіан Стіг

Дякую @nuriaion та @Fabian, так, відновлення проекту призвело до його роботи. Ще раз спасибі за ваші поради.
Хелен Нілі

3
@Helen In Eclipse => Project => Clean, ви можете очистити проекти, відновлення буде виконуватися автоматично ... Тому вам не доведеться закривати і відкривати проект.
nuriaion

відкриття та закриття проекту Scala дало мені: Під час збірки сталися помилки. Помилка інстанціювання конструктора "ch.epfl.lamp.sdt.core.scalabuilder". Плагін "ch.epfl.lamp.sdt.core" не зміг створити екземпляр класу "scala.tools.eclipse.Builder". Не вдалося ініціалізувати клас scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder Плагін "ch.epfl.lamp.sdt.core" не зміг створити екземпляр класу "scala.tools.eclipse.Builder". Не вдалося ініціалізувати клас scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder
Ustaman Sangat

87

У Eclipse переконайтеся, що ви додали вихідну папку у властивості проекту -> шлях побудови Java -> джерело. В іншому випадку функція main () може не бути включена у ваш проект.


Зверніть увагу, що це також можна зробити, перетягнувши файли у "src" у поданні провідника папок.
Макс фон Хіппель,

Це вирішило мою проблему, але після закриття та відкриття проекту.
Сказав

26

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



21

Просто переконайтеся, що папка, в якій ви працюєте, додана до вбудованого шляху:

right-clickваша папка -> build Path->Use as source Folder

і тепер він повинен mainтам знайти .


6

У мене була та сама проблема. Я пробував всілякі речі. І я це дізнався

  1. Мої файли .java не були пов'язані та
  2. вони не були поміщені в папку 'src'.

Що я робив:

Властивості проекту >> Шлях побудови Java >> Джерело

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

Це вирішило помилку.


5

Ви можете спробувати запустити основну функцію з бічної панелі контурів затемнення.

рішення


Коли я роблю це, я отримав повідомлення про помилку: <project root> [in Tut_RMI] does not exit. (Назва проекту Tut_RMI) Чи ця назва проекту недійсна?
Каспер

5
***

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

*** ваш проект у затемненні. Іноді виникають проблеми зв’язки. Це вирішило мою проблему


3

Швидке рішення:

По-перше, виключіть пакет: Клацніть правою кнопкою миші на вихідному пакеті >> Побудувати шлях >> Виключити

Потім включіть його назад: Клацніть правою кнопкою миші на вихідному пакеті >> Шлях побудови >> Включити


3

Що вам потрібно зробити, це створити проект Java, але обов’язково помістіть цей файл у файл пакету цього проекту, інакше ви зіткнетеся з тією ж помилкою.

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


2

Цей код є дійсним. Ви пробували скомпілювати його вручну за допомогою шкала? Крім того, ви називали свій файл "адресною книгою", усі малими літерами, як ім'я об'єкта?

Крім того, я виявив, що Eclipse з якихось причин встановив для основного класу значення ".addressbook" замість "addressbook".


Дякую, Даніель, так, файл називається "адресною книгою". Спробуємо знову відкрити проект, щоб перевірити, чи це допомагає.
Хелен Нілі

2

вам слід створити файл за допомогою

вибравши праворуч, ви знайдете ім'я свого файлу,

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

їх ваш файл повинен бути створений


2

Переконайтесь, що ваш файл .java присутній або в пакунку str, або в іншому пакеті. Якщо файл Java з основною функцією знаходиться поза межами всіх пакетів, ця помилка видається.


2

Зіткнувшись із подібною проблемою, вирішили це, клацнувши правою кнопкою миші на основному методі у вікні структури та запустивши як додаток Java.


1

Я просто мав цю проблему теж. Рішення полягає в тому, щоб переконатися, що eclipse створив проект як проект Java. Просто створіть новий проект Java та скопіюйте свій клас у папку src (та імпортуйте можливі залежності). Це має вирішити проблему.


Дякую KullDox за ваш коментар. Я давно вирішив цю проблему, але сподіваюся, хтось знайде рішення тут корисними.
Хелен Нілі

1

Правильна відповідь: бібліотеці Scala потрібно перед бібліотекою JRE у шляху побудови.

Перейдіть до Java Buildpath> Замовити та експортувати та перемістіть бібліотеку Scala вгору


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

Можливо, створений вами файл знаходиться поза папкою src (source). Спроба викликати об’єкт класу (із файлу, що знаходиться в папці src) із файлу .java за межами вихідної папки призводить до тієї ж помилки. Скопіюйте файл .java у вихідну папку, а потім створіть його. Помилка буде знищена.


1

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


1

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


1

Це може бути проблемою із шляхом побудови Java. Спробуйте нижче кроки:

  1. Перейдіть до властивостей проекту
  2. Перейдіть до Java Build Path
  3. Перейдіть на вкладку Джерело та додайте папку src проекту

Це має вирішити проблему.


1

Якщо це проект maven, перевірте, чи створений файл java під src / main / java

Якщо ви не отримуєте, будь ласка, змініть шлях JRE і створіть файли Java у структурі вище папки


0

Для мене в Eclipse 3.6 ця проблема виникає, коли мій основний метод не є загальнодоступним. Я спричинив проблему, маючи такий основний метод:

static void main(String[] args) 

Данжер не зміг сам це виявити. Я дуже здивований, що Eclipse пропустив це.


0

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


0

Виконайте наступні кроки:

  1. Створіть резервну копію всіх ваших файлів .java в іншому місці
  2. видалити весь проект Java - -
  3. Створіть новий проект Java, клацнувши правою кнопкою миші на кореневій панелі та клацніть новий
  4. відновити всі файли на нове місце !!

0

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


0

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


0

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


0

Спробуйте "Оновити проект". Щойно я це зробив, з’явилася опція Запустити як додаток Java.


0

У моєму конкретному випадку "Hello World" причиною цієї проблеми був той факт, що мій main()метод знаходився всередині Scala class.

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

Це пояснюється тим, що Scala objectв термінах Java - це сутність, у якій всередині є лише статичні члени та методи.

Ось чому Java public static void main()у Scala повинна бути розміщена під object.

(Scala classне може містити всередині статичні елементи)

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