2015-06-13 36 views
5

Chcę rozpocząć nowy projekt z Kotlinem dla JVM przy użyciu IntelliJ IDE, ale nie mogę uzyskać konfiguracji, aby działał. Próbowałem podążać za this tutorial, a potem nie działało (opcja "Uruchom" _DefaultPackage "" nigdy się nie pojawiła), zacząłem próbować intuicji, co miało być zrobione bez powodzenia. Co działo się tak daleko (wielokrotnie):Kotlin - Konfiguracja projektu IntelliJ

  • stworzyłem nowy projekt, wybrany „Kotlin - JVM” jako typ projektu.
  • Kliknąłem przycisk "Utwórz ..." dla środowiska wykonawczego Kotlin na drugiej stronie i wybrałem opcję "Kopiuj do: lib".
  • Klikam "Zakończ", a utworzony projekt ma jeden moduł o tej samej nazwie co mój projekt. Nie ma domyślnego pliku źródłowego ani żadnej konfiguracji.
  • utworzyć plik o nazwie Kotlin "app.kt" (Próbowałem też inne nazwy, takie jak "Main.kt") i umieścić następujący kod źródłowy w:
fun main(args: Array<String>){ 
    println("Hello world!") 
} 
  • Prawym przyciskiem myszy kliknąłem edytor kodu ORAZ plik w lewym okienku, aby znaleźć opcję "Uruchom" _DefaultPackage '"wymienioną w samouczku, ale nie udało się jej znaleźć.
  • Tworzę nową konfigurację Kotlin, która prosi o wpisanie "Głównej klasy". Widząc to, jak zmienić kod do:
public class Main { 
    fun main(args: Array<String>) { 
     println("Hello world!") 
    } 
} 
  • edytować konfigurację i ustawić główne klasy do "Main", a następnie uruchomić konfigurację. To nie z tego błędu: Błąd:”Running. Funkcji«main»nie znaleziono w klasie«Main»

Czego mi brakuje

+0

Jaką wersję IntelliJ IDEA używasz? Czy masz folder src? Czy utworzyłeś tam plik Kotlin? –

+0

Wersja IntelliJ 14.1.3. Mam domyślnie utworzony folder źródłowy o nazwie "src", który ma plik klasy Kotlin o nazwie Main. –

+0

Czy możesz wyświetlić zrzut ekranu z układem projektu lub jeszcze lepiej, wysłać mi próbkę? Jestem ciekawy, dlaczego tak się dzieje. –

Odpowiedz

1

Otwórz plik, który zawiera główne funkcje i przejdź do menu-? > "Edytuj konfiguracje", a następnie wybierz "+" w oknie dialogowym, "Aplikacja" jako typ ustaw nazwę do tego, co chcesz i ustawić główną klasę, klikając przycisk znajdujący się obok górnej ramki wpisu (ten oznaczony jako "główna klasa "):

Wybrać" ścieżkę klasy użytkowania modułu "i wybrać moduł z rozwijanego menu Kliknij" Zastosuj "i zamknij okno dialogowe Teraz powinieneś być w stanie pracować z shift + F10, debugowanie z przesunięciem + F9 i edytuj uruchom konfiguracje z shiftem + alt + F10. Możesz również uruchomić lub debugować za pomocą dwóch przycisków w prawym górnym rogu głównego ekranu.

+0

Przycisk potrójnej kropki do wyboru klasy nie działał (dwukrotne kliknięcie, klasa nic nie zrobiła), ale udało mi się wpisać tam nazwę mojej klasy. Teraz daje mi błąd "główna metoda powinna być statyczna", która dla Kotlina nie ma sensu, ponieważ nie ma czegoś takiego. Próbowałem usunąć to z klasy, ale to nie zadziałało. –

0

Musiałem zaktualizować moją wtyczkę Kotlin (która pojawiła się bardzo niedawno), a następnie pojawiły się opcje prawego kliknięcia do uruchamiania. Nie mogłem śledzić tego problemu w żaden inny sposób, więc myślę, że to wszystko.

Jeśli masz ten problem, kliknij prawym przyciskiem myszy plik kodu źródłowego, w którym znajduje się główna funkcja i kliknij polecenie Uruchom, Utwórz lub debuguj.

Należy pamiętać, że główna funkcja musi mieć nazwę "main" (bez ograniczeń) i argument "Array". To mnie przyłapało kilka razy, kiedy robiłem nowe projekty, próbując je uruchomić.

6

Pełną odpowiedź na jak rozpoznać runnable klasę na najwyższym poziomie main() funkcji lub użyć main() metoda w klasie są zarówno udokumentowane w tej drugiej odpowiedzi przepełnienie stosu: How to run Kotlin classes

Obejmuje to działa na w linii poleceń, w Intellij (jak pyta twoje pytanie), Gradle i więcej.

1

przeniosłem mój plik main.kt wewnątrz folderu src projektu i problemu rozwiązać tj IntelliJ znaleźliśmy MainKt klasę

8

Nie można zmontować projekt powodują metoda główny nie jest statyczny. Dlatego powinieneś zdefiniować go w obiekcie towarzyszącym.

class HelloKotlin { 

     companion object { 
      @JvmStatic fun main(args: Array<String>) { 
       println("Kotlin main is running here!") 
      } 
     } 
    } 
+2

Ta odpowiedź powinna zostać przyjęta –

Powiązane problemy