我只是想了解基础架构,我认为我错了。
以教程这里作为例子。
当我做:
kotlinc-jvm hello.kt -include-runtime -d hello.jar
如果编译器已将代码转换为Java字节码,为什么需要将Kotlin运行时捆绑到jar中?
用Java编写应用程序时,您将依赖于所有标准类库。该java.
级别(如java.lang.*
,java.util.*
...)都包含在每一个JRE,这样你就不需要自己包装它们。
Kotlin包括自己的标准类库(Kotlin运行时),与Java类库分开。要分发一个jar文件,任何拥有普通JRE的人都可以运行该jar文件,您还需要捆绑Kotlin运行时。
如果您没有捆绑Kotlin运行时,那么您的用户将必须在执行应用程序时确保Kotlin运行时在类路径中。您链接的页面提供了这种情况的示例:
编译库
如果您正在开发供其他Kotlin应用程序使用的库,则可以生成.jar文件而无需将Kotlin运行时包含在其中。
$ kotlinc-jvm hello.kt -d hello.jar
如果您以其他Kotlin用户为目标,那么可以合理地假设他们已经可以使用Kotlin运行时。但是,如果您要为最终用户部署应用程序,则要包括Kotlin运行时,以便您的应用程序是独立的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句