Edytor nie zawiera typu głównego


92

Po prostu przeglądałem przykładowy kod Scala w witrynie Scala, ale napotkałem irytujący błąd podczas próby uruchomienia.

Oto kod: http://www.scala-lang.org/node/45 . Po uruchomieniu go w Eclipse otrzymałem komunikat „Edytor nie zawiera typu głównego”, który uniemożliwia jego uruchomienie.

Czy jest coś, co muszę zrobić ... tj. Rozbić ten plik na wiele plików, czy co?

Odpowiedzi:


37

Często mam ten problem z Eclipse i Scala. Pomaga, jeśli wyczyścisz obszar roboczy i przebudujesz projekt.

Czasami Eclipse nie rozpoznaje poprawnie, które pliki musi przekompilować :(

Edycja: Kod działa dobrze w Eclipse


4
Zrobiłem to samo doświadczenie. Poza tym czasami wymagało to ode mnie zamknięcia i otwarcia projektu.
Fabian Steeg

Dzięki @nuriaion i @Fabian, tak, ponowne otwarcie projektu sprawiło, że zadziałał. Jeszcze raz dziękuję za wskazówki.
Helen Neely,

3
@Helen W Eclipse => Project => Clean możesz wyczyścić projekty, odbudowa rozpocznie się automatycznie ... Więc nie musisz zamykać i ponownie otwierać projektu.
nuriaion

otwarcie i zamknięcie projektu scala dało mi: Wystąpiły błędy podczas kompilacji. Błąd podczas tworzenia instancji programu budującego „ch.epfl.lamp.sdt.core.scalabuilder”. Wtyczka „ch.epfl.lamp.sdt.core” nie mogła utworzyć wystąpienia klasy „scala.tools.eclipse.Builder”. Nie można zainicjować klasy scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder Wtyczka „ch.epfl.lamp.sdt.core” nie mogła utworzyć instancji klasy „scala.tools.eclipse.Builder”. Nie można zainicjować klasy scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder
Ustaman Sangat

87

W Eclipse upewnij się, że dodajesz folder źródłowy we właściwościach projektu -> ścieżka budowania java -> źródło. W przeciwnym razie funkcja main () może nie zostać uwzględniona w projekcie.


Zwróć uwagę, że można to również osiągnąć, przeciągając i upuszczając pliki do „src” w widoku eksploratora folderów.
Max von Hippel

To rozwiązało mój problem, ale po zamknięciu i otwarciu projektu.
Powiedział

26

Musisz upewnić się, że twoje pliki .java znajdują się w folderze .src w eclipse. Miałem dokładnie ten sam problem, dopóki go nie odkryłem.



21

Po prostu upewnij się, że folder, w którym pracujesz, został dodany do ścieżki wbudowanej:

right-clicktwój folder -> build Path->Use as source Folder

i teraz powinien się maintam znaleźć .


6

Miałem ten sam problem. Próbowałem różnych rzeczy. I dowiedziałem się o tym

  1. Moje pliki .java nie zostały połączone, a
  2. nie zostały umieszczone w folderze „src”.

Rzeczy, które zrobiłem:

Właściwości projektu >> Ścieżka budowania Java >> Źródło

  • Usunięto oryginalny folder „src”, który był pusty za pomocą opcji „Usuń”
  • Dodano źródło zawierające moje źródłowe pliki .java przy użyciu opcji „Dodaj folder”

To rozwiązało błąd.


5

Możesz spróbować uruchomić główną funkcję z bocznego paska zaćmienia.

rozwiązanie


Kiedy to zrobić, mam komunikat o błędzie: <project root> [in Tut_RMI] does not exit. (Nazwa projektu to Tut_RMI) Czy ta nazwa projektu jest nieprawidłowa?
Casper

5
***

Po prostu zamknij i otwórz ponownie

*** twój projekt w zaćmieniu. Czasami pojawiają się problemy z łączeniem. To rozwiązało mój problem


3

Szybkie rozwiązanie:

Najpierw wyklucz pakiet: kliknij prawym przyciskiem myszy pakiet źródłowy >> Buduj ścieżkę >> Wyklucz

Następnie dołącz go z powrotem: Kliknij prawym przyciskiem myszy pakiet źródłowy >> Ścieżka budowania >> Uwzględnij


3

Powinieneś zrobić, stworzyć projekt Java, ale upewnij się, że umieściłeś ten plik w pliku pakietu tego projektu, w przeciwnym razie napotkasz ten sam błąd.

wprowadź opis obrazu tutaj


2

Ten kod jest ważny. Czy próbowałeś skompilować go ręcznie za pomocą scalaka? Czy nazwałeś swój plik „książką adresową”, używając małych liter, jak nazwa obiektu?

Odkryłem również, że Eclipse z jakiegoś powodu ustawił główną klasę na „.addressbook” zamiast „addressbook”.


Dzięki Daniel, tak, plik ma nazwę „książka adresowa”, wszystkie małe litery. Spróbuje ponownie otworzyć projekt, aby sprawdzić, czy to pomoże.
Helen Neely,

2

powinieneś stworzyć swój plik przez

wybierając po prawej stronie znajdziesz nazwę swojego pliku,

pod tym znajdziesz folder src, po kliknięciu prawym przyciskiem myszy wybierz -> opcja klasy

ich plik powinien zostać utworzony


2

Upewnij się, że plik .java jest obecny w pakiecie str lub w innym pakiecie. Jeśli plik java z główną funkcją znajduje się poza wszystkimi pakietami, zgłaszany jest ten błąd.


2

W obliczu podobnego problemu rozwiązałem go, klikając prawym przyciskiem myszy główną metodę w widoku konspektu i uruchamiając jako aplikację Java.


1

Ja też miałem ten problem. Rozwiązaniem jest upewnienie się, że eclipse utworzyło projekt jako projekt Java. Po prostu utwórz nowy projekt Java i skopiuj swoją klasę do folderu src (i zaimportuj ewentualne zależności). To powinno rozwiązać problem.


Dzięki KullDox za komentarz. Długo rozwiązałem ten problem, ale mam nadzieję, że ktoś inny uzna te rozwiązania za pomocne.
Helen Neely

1

Prawidłowa odpowiedź brzmi: biblioteka Scala musi poprzedzać bibliotekę JRE w ścieżce budowania.

Idź do Java Buildpath> Order and Export i przenieś bibliotekę Scala na górę


1

Miałem ten problem z projektem Java, który zaimportowałem z systemu plików (pod Eclipse Helios). Oto wskazówka: kod src nie wydawał się w ogóle skompilowany, ponieważ nie pojawił się żaden katalog „bin”.

Musiałem stworzyć projekt Java od podstaw (za pomocą kreatora), a następnie porównać .project pliki niedziałających i działających projektów.

Projekt podający „Editor nie zawiera głównego typu” miał to jako „buildSpec” w pliku .project:

<buildSpec>
</buildSpec>

Ale działający projekt miał to jako „buildSpec”:

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

Skopiowałem to i zaimportowany projekt zadziałał.

Wiem, że moja odpowiedź dotyczy Javy, ale ten sam problem może dotyczyć Twojego projektu Scala.


1

Być może utworzony plik znajduje się poza folderem src (źródłowym). Próba wywołania obiektu klasy (z pliku znajdującego się w folderze src) z pliku .java poza folderem źródłowym kończy się tym samym błędem. Skopiuj plik .java do folderu źródłowego, a następnie skompiluj go. Błąd zniknie.


1

Miałem ten sam problem. Miałem główną klasę z pakietu src w innym folderze. Przenoszę go i poprawiam folder i rozwiązałem


1

uruchom "eclipse -clean -refresh" z linii poleceń. To rozwiązało problem, gdy wszystkie inne rozwiązania zawiodły.


1

Może to być problem ze ścieżką kompilacji Java. Spróbuj wykonać poniższe kroki:

  1. Przejdź do właściwości projektu
  2. Przejdź do ścieżki budowania java
  3. Przejdź do zakładki Source i dodaj folder src projektu

To powinno rozwiązać problem.


1

Jeśli jest to projekt maven, sprawdź, czy plik java został utworzony w katalogu src / main / java

Jeśli nie otrzymujesz, zmień ścieżkę JRE i utwórz pliki java w powyższej strukturze folderów


0

U mnie w Eclipse 3.6 ten problem występuje, gdy moja główna metoda nie jest publiczna. Spowodowałem problem, mając główną metodę, taką jak ta:

static void main(String[] args) 

Dubugger nie był w stanie sam tego wykryć. Jestem dość zaskoczony, że Eclipse to przeoczyło.


0

W najgorszym przypadku - utwórz projekt jeszcze raz ze wszystkimi importami od początku. W moim przypadku żadna z pozostałych opcji nie zadziałała. Ten typ błędu wskazuje, że wystąpił błąd w ustawieniach projektu. Kiedyś udało mi się go rozwiązać, ale po zakończeniu dalszych prac błąd wrócił. Odtworzenie wszystkiego od początku pomogło mi zrozumieć i zoptymalizować niektóre linki, a teraz jestem pewien, że działa poprawnie.


0

Wykonaj poniższe kroki:

  1. Utwórz kopię zapasową wszystkich plików .java w innej lokalizacji
  2. usuń cały projekt java
  3. Utwórz nowy projekt java, klikając prawym przyciskiem myszy root i klikając nowy
  4. przywróć wszystkie pliki do nowej lokalizacji !!

0

Plik >> Importuj >> Istniejące projekty do obszaru roboczego >> Wybierz archiwum zarchiwizowane >> Przeglądaj i zlokalizuj plik >> Zakończ. Jeśli jest już zaimportowany w inny sposób, usuń go i wypróbuj w ten sposób. Miałem ten sam problem, dopóki tego nie spróbowałem.


0

Jeszcze jedna rzecz do sprawdzenia: upewnij się, że plik źródłowy zawiera poprawną deklarację pakietu odpowiadającą podkatalogowi, w którym się znajduje. Błąd wspomniany przez OP można zobaczyć podczas próby uruchomienia „głównego typu” zadeklarowanego w pliku w podkatalogu, ale brak instrukcji pakietu.


0

Mam ten problem po zmianie folderu źródłowego. Rozwiązaniem, które działało, jest po prostu edycja pliku i zapisanie go.


0

Spróbuj „Aktualizuj projekt”. Kiedy to zrobiłem, pojawiła się opcja Uruchom jako aplikację Java.


0

W moim konkretnym przypadku „Hello World” przyczyną tego problemu był fakt, że moja main()metoda znajdowała się wewnątrz Scali class.

Podłożyłem main()metodę pod Scala objecti błąd zniknął.

Dzieje się tak, ponieważ Scala objectw kategoriach Java jest jednostką zawierającą tylko statyczne elementy członkowskie i metody.

Dlatego Java public static void main()w Scali musi być umieszczona pod object.

(Scala classnie może zawierać ładunków elektrostatycznych)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.