Intereting Posts
Основы программирования Котлина Получить класс компаньона в сопутствующем объекте Преобразование процедурных методов стиля в функциональный стиль В чем разница между Foo :: class.java и Foo :: javaClass? Повторение действий с состоянием с помощью RxJava Весна @ Работает в Котлине Запуск тестов kotlin с помощью gradlew вызывает java.lang.SecurityException AWS S3 неразрешенный супертип: TransferListener в классе верхнего уровня Kotlin Могу ли я интегрировать и использовать рекламные объявления admob в проекте Android с помощью Kotlin? Kotlin: как передать последовательность (сопрограммы) как Iterable <T> Функция Котлина с нулевым / ненулевым вводом, отображаемым на нулевой / ненулевой вывод Лучший способ применить преобразование к каждому элементу в списке одновременно в Котлине Эффективная комбинация карт и фильтров против stdlibs Какая версия Dokka идет с какой версией Kotlin? Декодирование ByteArray с помощью Spring 5 Framework WebFlux

Приложение Kotlin с плагином приложения Gradle

Я пытаюсь создать простое приложение HelloWorld, используя kotlin , gradle и плагин application gradle. Когда я запускаю его с настройкой ниже, я получаю следующую ошибку:

 Error: Main method is not static in class com.petarkolaric.helloworld.Main, please define the main method as: public static void main(String[] args) 

My build.gradle :

 group 'helloworld' version '1.0-SNAPSHOT' buildscript { ext.kotlin_version = '1.2.0' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin' apply plugin: 'application' mainClassName = "com.petarkolaric.helloworld.Main" repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } compileKotlin { kotlinOptions.jvmTarget = "1.8" } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" } 

Мой src/main/kotlin/com/petarkolaric/helloworld/Main.kt :

 package com.petarkolaric.helloworld class Main { fun main(args : Array<String>) { println("Hello, World!") } } 

Согласно этому сообщению в блоге, я должен использовать этот плагин приложения.

Что мне нужно изменить, чтобы позволить плагину application запускать мою основную функцию, когда я запускаю запуск gradle run ?

Solutions Collecting From Web of "Приложение Kotlin с плагином приложения Gradle"

Как говорит ошибка, ваш основной метод не является статичным. У вас есть следующие варианты:

1) Поместите основной companion object в companion object и сделайте его JvmStatic

 class Main { companion object { @JvmStatic fun main(args : Array<String>) { println("Hello, World!") } } } 

2) Измените свой class на object – чем вы более или менее имеете одноэлементный class и сделаете его JvmStatic

 object Main { @JvmStatic fun main(args : Array<String>) { println("Hello, World!") } } 

3) Поместите главное вне класса

 fun main(args : Array<String>) { println("Hello, World!") } class Main { }