首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NetBeans能运行Kotlin吗?

NetBeans能运行Kotlin吗?
EN

Stack Overflow用户
提问于 2019-08-31 19:54:16
回答 1查看 4.3K关注 1票数 2

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

据说Kotlin可以在Eclipse和NetBeans中使用。看起来你可以用NetBeans写Kotlin你想写的任何东西,但是它根本不会运行。

我为NetBeans插件安装了Kotlin,它看起来很管用。它具有人们所期望的所有提示和语法突出显示。但是当涉及到实际运行用Kotlin编写的东西时,NetBeans似乎完全无能为力。我还很难将JUnit导入到Kotlin测试类中。

但在其他事情之前,第一件要做的事就是“你好世界”。我试过几个简单的“你好世界”。Java Hello World运行。Kotlin Hello没有,我甚至尝试在Scala中运行它,得到了相同的结果。

HelloWorld.kt (这只是缺少许可头提醒和生成的Javadoc):

代码语言:javascript
复制
package basicexerciseskotlin

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

我的第一稿有很多错误和警告,提示帮助我把它变成了这个形式,所以现在我有了一个绿色指示器。但是Run > Run File是灰色的,键盘快捷方式什么也不做。

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

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

代码语言:javascript
复制
package basicexerciseskotlin;

public class BasicExercisesKotlin {

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

}

在IntelliJ中:

代码语言:javascript
复制
/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中:

代码语言:javascript
复制
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是个问题:

代码语言:javascript
复制
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生成的字节码,但我对此还不太了解。

EN

回答 1

Stack Overflow用户

发布于 2021-03-07 21:45:41

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

公认的公关是一个良好的迹象,它可能很快就会进入正式的插件名单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57741229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档