首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kotlinc vs kotlinc-jvm编译,kotlin vs java运行。

kotlinc vs kotlinc-jvm编译,kotlin vs java运行。
EN

Stack Overflow用户
提问于 2022-07-29 17:35:58
回答 1查看 60关注 0票数 0

我刚刚安装了Kotlin版本的1.7.0,bin文件夹有以下运行程序。

  • kotlinc
  • kotlin-jvm
  • kotlin

快速检查后发现,kotlinckotlin-jvm用于将代码编译成字节码,就像Java中的javac一样。为什么有两个命令用于kotlin编译。有什么明显的差别吗?

我应该使用java命令来运行字节码,还是使用kotlin命令来运行字节码。任何在性能上的权衡。

EN

回答 1

Stack Overflow用户

发布于 2022-07-29 19:26:57

官方的文档对这些命令行工具没有太多的描述。 ,虽然您可以用-help来调用它们,但这仅仅描述了它们所接受的其他选项。

但是,我可以告诉您在我的系统(macOS,Kotlin是使用HomeBrew安装的)上发生了什么,. I不知道有多少下面的内容适用于其他平台,但我怀疑至少Windows和Linux会非常相似。

这些可执行文件是包装脚本,因此可以看到它们所做的一些事情。 (它们最终运行Kotlin程序,这限制了您可以看到的…) 

汇编:

kotlinc-jvm是一个非常简单的包装脚本,它只调用kotlinc --因此它们之间显然没有任何有效的区别!

这表明Kotlin/JVM是默认的编译目标,至少在我的系统上是这样。kotlinc-js也调用kotlinc,但只有在设置了$KOTLIN_COMPILER环境变量(这改变了kotlinc最终运行的程序)之后, 才会这样做。 可能在其他系统上有不同的默认设置--或者至少他们希望允许这种可能性。

跑步:

运行kotlin的AIUI实际上等同于运行java,除了kotlin将Kotlin运行时类添加到类路径之外。

当然,在运行java时(例如在$CLASSPATH-cp参数中),您可以手动添加它们;但是,您需要知道它们在哪里,或者有什么方法可以找到它们。 (在我的系统中,只有在…/libexec/lib/. The中,只有相关的kotlin-stdlib jar才是必需的,尽管有些代码也需要kotlin-reflect,或者其他代码也需要kotlin-reflect,或者如果您安装了完整的Kotlin,我认为您可以简单地添加kotlin-runner.jar,这会为您吸引其他代码)。

我认为使用kotlin没有任何其他好处。

请注意,如果您构建了一个‘’fat‘.jar/.war文件,其中包括Kotlin运行时库,那么大多数系统都将使用java来运行该文件。

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

https://stackoverflow.com/questions/73169118

复制
相关文章

相似问题

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