繁体   English   中英

NetBeans 可以运行 Kotlin 吗?

[英]Can NetBeans run Kotlin?

这更多是为了看看 Kotlin 是否真的可以在 NetBeans 中工作,即使它需要跳过太多的障碍才能实用。 如果我真的需要使用 Kotlin,我有 IntelliJ。

据说 Kotlin 可以在 Eclipse 和 NetBeans 中使用。 看起来您可以随心所欲地在 NetBeans 中编写 Kotlin,但它根本无法运行。

我为 NetBeans 插件安装了 Kotlin,它似乎可以工作。 它具有人们期望的所有提示和语法突出显示。 但是当谈到实际运行用 Kotlin 编写的东西时,NetBeans 似乎完全无能为力。 我也无法将 JUnit 导入 Kotlin 测试类。

但首先要完成的事情是 Hello World。 我尝试了几个简单的 Hello World。 Java Hello World 运行。 Kotlin Hello World 没有。 我什至尝试通过 Scala REPL 运行它,结果几乎相同。

来自HelloWorld.kt (这只是缺少许可证标题提醒和生成的 Javadoc):

package basicexerciseskotlin

fun main(args: Array<String>) = println("Hello, world, from Kotlin!")

我的初稿有一堆错误和警告,提示帮助我把它变成了这个表格,所以现在我有一个绿色的指示器。 但是运行>运行文件是灰色的,键盘快捷键什么也不做。

然后我想也许我可以从 Java 类中调用HelloWorld.main() 为了弄清楚如何做到这一点,我在 IntelliJ 中做了一个类似的项目。 我将 IntelliJ 中的想法复制到 NetBeans,但我不得不注释掉调用HelloWorldKt的行。

来自BasicExercisesKotlin.java (项目中的主类,就 NetBeans 而言):

package basicexerciseskotlin;

public class BasicExercisesKotlin {

    public static void main(String[] args) {
        System.out.println("Hello world, from Java!");
        String[] kArgs = {""};
//        HelloWorldKt.main(kArgs);
    }

}

在 IntelliJ 中:

/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/bin/java ...
Hello, world, from Java!
Hello, world, from Kotlin!

Process finished with exit code 0

但是 NetBeans 找不到符号HelloWorldHelloWorldKt

在 Scala REPL 中:

scala> basicexerciseskotlin.BasicExercisesKotlin.main(null)
Hello world, from Java!

scala> basicexerciseskotlin.HelloWorldKt.main(null)
java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
  at basicexerciseskotlin.HelloWorldKt.main(HelloWorld.kt)
  ... 28 elided
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
  at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  ... 29 more

以防万一null是一个问题:

scala> val kArgs = Array("")
kArgs: Array[String] = Array("")

scala> basicexerciseskotlin.HelloWorldKt.main(kArgs)
java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
  at basicexerciseskotlin.HelloWorldKt.main(HelloWorld.kt)
  ... 28 elided

也许插件忽略了解决一些必要的路径?

我确实考虑过仔细检查 IntelliJ 生成的字节码,但我对此知之甚少,无法理解它。

关于该主题有两个问题表明正在取得进展:

被接受的 PR 是一个好兆头,它很快就会登陆官方插件列表。

要在netbeans上运行kotlin,请从网站上下载此插件,或在工具部分->插件中编写kotlin。

Kotlin插入式Netbeans

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM