gpt4 book ai didi

java - 为什么我可以用 "java -cp scala-library.jar;. Hello World"启动 Scala 编译器?

转载 作者:行者123 更新时间:2023-12-01 18:47:06 24 4
gpt4 key购买 nike

我确实知道scala是建立在java之上的,你可以在scala中编写java代码并执行它。但是当我浏览source code时scala 我找不到任何java 文件。如果编译器是用 Java 构建的,并且您现在可以使用与 Java 没有相似之处的语法,我就会理解。但我找不到任何东西。

那么为什么我可以使用java编译器来运行scala程序呢?

最佳答案

如果您的意思是可以在 .scala 文件中使用 java 语法,那么您实际上不能在 scala 中编写 java 代码,但 scalac 能够识别 .java 文件并选择 javac 进行编译。大多数 jvm 语言,如 java、scala、groovy、clojure 等都被编译为相同的字节码,因此 JVM 根本不知道代码是用一种语言还是另一种语言编写的。

为什么我可以使用java编译器来运行scala程序

你不能。 Java编译器只是从java语言到java字节码的翻译器。重点是,java虚拟机只能运行字节码(通用语言,看起来类似于汇编),而scala被翻译成这种通用字节码(下图中的类文件,取自 there )。但同时,scala 程序通常需要一些依赖项(例如 scala 集合库和大量不同的 api),因此您必须将 scala-library jar 放在类路径中。

enter image description here

关于java - 为什么我可以用 "java -cp scala-library.jar;. Hello World"启动 Scala 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com