我很久没有使用Android了,但是现在我找到了一个新名词Kotlin,所以我怀疑,Kotlin需要JDK吗?
如果Kotlin将替换为Java,那么JDK就没有必要了,因为据我所知JDK是针对Java开发的,是对的吗?
如果它是正确的,那么我还有其他怀疑(这已经很久了)为什么JDK用于Android,如果这已经包含了Android SDK?
P上。 D. 我疯了,我需要一个解释。
答案 0 :(得分:8)
答案 1 :(得分:2)
如前所述,Kotlin JVM需要JVM才能工作。 Kotlin编译为JVM字节码,这意味着它具有与Java(运行时和开发工具包)相同的要求。这也是Kotlin拥有Java互操作性的原因。此外,这是您最有可能发现自己使用Android的那个。
然而,有Kotlin Native。 SDK本身与Kotlin JVM略有不同,它仍然是WIP,但它可以在不需要JVM的情况下进行编译。具体来说,它使用LLVM编译为本机目标。这个版本的Kotlin支持C interop。
Kotlin Native还打开了Kotlin Multiplatform的大门,它可以编译成你想要的任何内容(移动目标,桌面目标,并将它全部打包成一个,并包含与本机编程语言的互操作)。 注意:我不确定Kotlin Native with Multiplatform是什么编译的。一些演示项目在Android模块中使用Kotlin JVM,这表明它不使用NDK样式的本机代码。像Native一样的多平台是实验性的。我也没有多触及Multiplatform,但它似乎使用了声明函数和平台声明函数的组合。我不确定互操作如何在这里起作用(就语言而言 - 不是模块互操作)。
多平台不需要Native,但它可以实现更多的平台。如果您正在使用跨平台Java库(对于实例LibGDX),或者在具有核心和平台的模块上构建,您也可以在此处使用Multiplatform。但请注意,这可能需要JDK,尽管它取决于您的项目。
除了这些之外,还有Kotlin.JS,顾名思义,它编译为JavaScript。与Kotlin JVM不同,它自然不需要JVM。但是,它需要与JavaScript相关的API。正如您所期望的那样,Kotlin.JS支持JavaScript互操作。
<强> TL; DR:强>
JDK并不总是必需的。 Kotlin Native和Kotlin JS不需要JDK,因为它们编译的目标不在JVM上。
答案 2 :(得分:1)
是的! Kotlin 1.1.2(及以上版本)需要JDK。
另外,非常重要的是, Kotlin并未得到支持,以便取代&#34;爪哇即可。这是另一个非常常见的错误概念。 Kotlin仅被添加到支持编写Android应用程序的语言列表中。
您可以查看以下链接,了解该语言的历史记录: https://en.wikipedia.org/wiki/Kotlin_(programming_language)
答案 3 :(得分:-4)
Kotlin编译为jvm字节码。它需要一个jvm。它可以用来代替Java语言