因此,我了解了scalac编译器与javac有何不同-查看生成的字节码,它们看起来与javac生成的内容完全不同-例如没有构造函数的类。
但是,运行时是否不同于在类路径中使用scala jar启动java?我非常确定,但是有人可以确认scala命令只是围绕Java的薄包装-毕竟,他们只是简单地编写了JRE/JDK。
最佳答案
scala
命令基本上是一个脚本,该脚本设置类路径,然后在Java Runtime环境中运行您的代码。scala
脚本中的相关行显示在末尾:
exec "${JAVACMD:=java}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.emacs="$EMACS" scala.tools.nsc.MainGenericRunner "$@"
基本上,这将开始运行
java
的MainGenericRunner
。然后MainGenericRunner
检查您是否已告诉scala
运行您的Scala类之一。如果是这样,它将开始运行它。否则,它将启动交互式解释器。