我有简单的脚本
package com.lapots.game.journey.ims.example
fun main(args: Array<String>) {
println("Hello, world!")
}
Run Code Online (Sandbox Code Playgroud)
这是gradle任务
task runExample(type: JavaExec) {
main ='com.lapots.game.journey.ims.example.Example'
classpath = sourceSets.main.runtimeClasspath
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行任务时,gradle runExample我得到了错误
Error: Could not find or load main class com.lapots.game.journey.ims.example.Example
运行应用程序的正确方法是什么?
Hol*_*ndl 14
如果您使用的是 Kotlin 构建文件build.gradle.kts,则需要执行以下操作
apply {
plugin("kotlin")
plugin("application")
}
configure<ApplicationPluginConvention> {
mainClassName = "my.cool.App"
}
Run Code Online (Sandbox Code Playgroud)
如果您application使用plugins {}块来应用插件,则可以使其更简单:
plugins {
application
}
application {
mainClassName = "my.cool.App"
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅https://github.com/gradle/kotlin-dsl/blob/master/doc/getting-started/Configuring-Plugins.md
lap*_*ots 11
感谢链接如何在Kotlin中运行已编译的类文件?由@JaysonMinard提供main
@file:JvmName("Example")
package com.lapots.game.journey.ims.example
fun main(args: Array<String>) {
print("executable!")
}
Run Code Online (Sandbox Code Playgroud)
然后 task
task runExample(type: JavaExec) {
main = 'com.lapots.game.journey.ims.example.Example'
classpath = sourceSets.main.runtimeClasspath
}
Run Code Online (Sandbox Code Playgroud)
做了伎俩
Sub*_*ash 11
您也可以gradle为此使用应用程序插件。
// example.kt
package com.lapots.game.journey.ims.example
fun main(args: Array<String>) {
print("executable!")
}
Run Code Online (Sandbox Code Playgroud)
将此添加到您的 build.gradle
// build.gradle
apply plugin "application"
mainClassName = 'com.lapots.game.journey.ims.example.ExampleKt'
Run Code Online (Sandbox Code Playgroud)
然后如下运行您的应用程序。
./gradlew run
Run Code Online (Sandbox Code Playgroud)
对于build.gradle.kts用户
主文件:
package com.foo.game.journey.ims.example
fun main(args: Array<String>) {
println("Hello, world!")
}
Run Code Online (Sandbox Code Playgroud)
build.gradle.kts 文件:
plugins {
application
kotlin("jvm") version "1.3.72" // <-- your kotlin version here
}
application {
mainClassName = "com.lapots.game.journey.ims.example.ExampleKt"
}
...
Run Code Online (Sandbox Code Playgroud)
并使用以下命令运行:
./gradlew run
Run Code Online (Sandbox Code Playgroud)
小智 5
我从@lapots 的答案中找到了另一种方法。
在你的example.kt:
@file:JvmName("Example")
package your.organization.example
fun main(string: Array<String>) {
println("Yay! I'm running!")
}
Run Code Online (Sandbox Code Playgroud)
然后在你的build.gradle.kts:
plugins {
kotlin("jvm") version "1.3.72"
application
}
application {
mainClassName = "your.organization.example.Example"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7322 次 |
| 最近记录: |