我已经很久没有使用Android了,但是现在我发现了一个新的术语,Kotlin,所以我的疑问是,Kotlin需要JDK吗?如果Kotlin将取代Java,那么JDK就没有必要了,因为根据我的说法,JDK是用于在Java上开发的,对吗?如果它是正确的,那么我有其他疑问(这已经是旧的),为什么JDK用于Android,如果这已经包括一个Android的SDK?警察我快疯了我需要一个解释。
p1iqtdky1#
是的,在JVM上进行Kotlin开发需要JDK。过去Kotlin使用的是JDK 1.6+目标,从Kotlin 1.5开始,Kotlin需要JDK 1.8(即Java 8)或更高版本。
g52tjvyc2#
如前所述,KotlinJVM需要JVM才能工作。Kotlin编译成JVM字节码,这意味着它与Java有相同的要求(运行时和开发工具包)。这也是Kotlin有Java互操作的原因。此外,这是你最有可能在Android上使用的一个。但是有Kotlin Native,SDK本身和KotlinJVM略有不同,仍然是WIP,但是编译时不需要JVM,具体来说就是使用LLVM编译成原生目标,这个版本的Kotlin支持C interop。KotlinNative也为Kotlin Multiplatform打开了大门,它可以编译成任何你想要的东西(移动的目标、桌面目标,它将所有目标打包成一个,并包括与本机编程语言的互操作)。**注意:**我不确定Kotlin Native with Multiplatform编译成什么。一些演示项目在Android模块中使用Kotlin JVM,这表明它没有使用NDK风格的本机代码。多平台,比如Native,是实验性的。我也没有接触过多平台,但它似乎使用了声明函数和平台声明函数的组合。我不确定互操作在这里是如何工作的(从语言的Angular 来说-而不是模块互操作)。尽管Multiplatform不需要Native,但是它支持更多的平台。如果你使用跨平台的Java库(例如LibGDX),或者构建在有内核和平台的模块上,你也可以使用Multiplatform。但是,注意这可能需要JDK,尽管它取决于你的项目。除此之外,还有Kotlin.JS,顾名思义,它可以编译成JavaScript。与KotlinJVM不同,它自然不需要JVM。但是,它需要与JavaScript相关的API。正如您所期望的,Kotlin.JS支持JavaScript互操作。
TL;DR:
KotlinNative和Kotlin JS不需要JDK,因为它们编译的目标不在JVM上。
hl0ma9xz3#
是的!Kotlin1.1.2(及更高版本)需要JDK。另外,非常重要的是,Kotlin不应该“取代”Java。这是另一个非常常见的错误观念。Kotlin只是被添加到编写Android应用程序所支持的语言列表中。你可以点击下面的链接来了解这种语言的历史:https://en.wikipedia.org/wiki/Kotlin_(programming_language)
p5cysglq4#
Kotlin编译成jvm字节码。它需要一个jvm。它可以用来代替Java语言
4条答案
按热度按时间p1iqtdky1#
是的,在JVM上进行Kotlin开发需要JDK。
过去Kotlin使用的是JDK 1.6+目标,从Kotlin 1.5开始,Kotlin需要JDK 1.8(即Java 8)或更高版本。
g52tjvyc2#
如前所述,KotlinJVM需要JVM才能工作。Kotlin编译成JVM字节码,这意味着它与Java有相同的要求(运行时和开发工具包)。这也是Kotlin有Java互操作的原因。此外,这是你最有可能在Android上使用的一个。
但是有Kotlin Native,SDK本身和KotlinJVM略有不同,仍然是WIP,但是编译时不需要JVM,具体来说就是使用LLVM编译成原生目标,这个版本的Kotlin支持C interop。
KotlinNative也为Kotlin Multiplatform打开了大门,它可以编译成任何你想要的东西(移动的目标、桌面目标,它将所有目标打包成一个,并包括与本机编程语言的互操作)。**注意:**我不确定Kotlin Native with Multiplatform编译成什么。一些演示项目在Android模块中使用Kotlin JVM,这表明它没有使用NDK风格的本机代码。多平台,比如Native,是实验性的。我也没有接触过多平台,但它似乎使用了声明函数和平台声明函数的组合。我不确定互操作在这里是如何工作的(从语言的Angular 来说-而不是模块互操作)。
尽管Multiplatform不需要Native,但是它支持更多的平台。如果你使用跨平台的Java库(例如LibGDX),或者构建在有内核和平台的模块上,你也可以使用Multiplatform。但是,注意这可能需要JDK,尽管它取决于你的项目。
除此之外,还有Kotlin.JS,顾名思义,它可以编译成JavaScript。与KotlinJVM不同,它自然不需要JVM。但是,它需要与JavaScript相关的API。正如您所期望的,Kotlin.JS支持JavaScript互操作。
TL;DR:
KotlinNative和Kotlin JS不需要JDK,因为它们编译的目标不在JVM上。
hl0ma9xz3#
是的!Kotlin1.1.2(及更高版本)需要JDK。
另外,非常重要的是,Kotlin不应该“取代”Java。这是另一个非常常见的错误观念。Kotlin只是被添加到编写Android应用程序所支持的语言列表中。
你可以点击下面的链接来了解这种语言的历史:https://en.wikipedia.org/wiki/Kotlin_(programming_language)
p5cysglq4#
Kotlin编译成jvm字节码。它需要一个jvm。它可以用来代替Java语言