我有简单的脚本
package com.lapots.game.journey.ims.example
fun main(args: Array<String>) {
println("Hello, world!")
}
这是gradle
任务
task runExample(type: JavaExec) {
main ='com.lapots.game.journey.ims.example.Example'
classpath = sourceSets.main.runtimeClasspath
}
但是当我尝试运行任务gradle runExample
时,我收到错误
Error: Could not find or load main class com.lapots.game.journey.ims.example.Example
运行应用程序的正确方法是什么?
答案 0 :(得分:11)
感谢@JaysonMinard提供的链接how to run compiled class file in Kotlin?
main
@file:JvmName("Example")
package com.lapots.game.journey.ims.example
fun main(args: Array<String>) {
print("executable!")
}
和task
task runExample(type: JavaExec) {
main = 'com.lapots.game.journey.ims.example.Example'
classpath = sourceSets.main.runtimeClasspath
}
做了这个伎俩
答案 1 :(得分:6)
您也可以使用gradle
应用程序插件。
// example.kt
package com.lapots.game.journey.ims.example
fun main(args: Array<String>) {
print("executable!")
}
将此添加到您的build.gradle
// build.gradle
apply plugin "application"
mainClassName = 'com.lapots.game.journey.ims.example.ExampleKt'
然后按如下方式运行您的应用程序。
./gradlew run
答案 2 :(得分:3)
如果您正在使用Kotlin构建文件build.gradle.kts
,则需要执行
apply {
plugin("kotlin")
plugin("application")
}
configure<ApplicationPluginConvention> {
mainClassName = "my.cool.App"
}
如果您使用application
块应用plugins {}
插件,则可以使其更简单:
plugins {
application
}
application {
mainClassName = "my.cool.App"
}
有关详细信息,请参阅https://github.com/gradle/kotlin-dsl/blob/master/doc/getting-started/Configuring-Plugins.md
答案 3 :(得分:3)
我从@lapots答案中找到了另一种方法。
在您的example.kt
中:
@file:JvmName("Example")
package your.organization.example
fun main(string: Array<String>) {
println("Yay! I'm running!")
}
然后在您的build.gradle.kts
中
plugins {
kotlin("jvm") version "1.3.72"
application
}
application {
mainClassName = "your.organization.example.Example"
}
答案 4 :(得分:3)
build.gradle.kts
个用户
主文件:
package com.foo.game.journey.ims.example
fun main(args: Array<String>) {
println("Hello, world!")
}
build.gradle.kts文件:
plugins {
application
kotlin("jvm") version "1.3.72" // <-- your kotlin version here
}
application {
mainClassName = "com.lapots.game.journey.ims.example.ExampleKt"
}
...
并使用以下命令运行:
./gradlew run
答案 5 :(得分:0)