Jetbrains提供了一些文档,但我找不到如何运行Kotlin的编译类文件.
hello.kt:
fun main(args : Array<String>) {
println("Hello, world!")
}
Run Code Online (Sandbox Code Playgroud)
编译:
$ kotlinc -out dist -src hello.kt
$ ls dist
namespace.class
$ java dist/namespace
Exception in thread "main" java.lang.NoClassDefFoundError: dist/namespace (wrong name: namespace)
$ java -jar /usr/local/kotlin/lib/kotlin-runtime.jar
Failed to load Main-Class manifest attribute from
/usr/local/kotlin/lib/kotlin-runtime.jar
Run Code Online (Sandbox Code Playgroud)
如何运行Kotlin程序?
我在Kotlin编写了一个Java库,我想把它编译成一个可供Java和Kotlin应用程序使用的jar.
我们的想法是jar应该能够处理Java项目和Kotlin项目.做一个简单的./gradlew clean assemble生成一个jar,当我检查jar时,我可以看到几个未包含在jar中的导入,普通的Java应用程序也无法访问它:
import jet.runtime.typeinfo.JetValueParameter;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.KotlinClass;
import kotlin.jvm.internal.KotlinClass.Kind;
import kotlin.jvm.internal.KotlinSyntheticClass;
import kotlin.jvm.internal.KotlinSyntheticClass.Kind;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Run Code Online (Sandbox Code Playgroud)
我怎么能在jar中包含上面的依赖项?现在罐子只有30kb.我更喜欢不必包括整个Kotlin运行时,但只能在使用过的组件中进行编译.