因此,我理解scalac编译器与javac的不同之处--从生成的字节码来看,它们看起来一点也不像javac会生成的东西--例如,没有构造函数的类。
但是运行时与在类路径中使用scala jar启动java有什么不同吗?我非常确定,但是有人能证实scala命令只是java的一个薄薄的包装器--毕竟他们只是启动了一个JRE / JDK。
发布于 2012-01-07 03:38:56
scala命令基本上是一个脚本,它设置类路径,然后在Java Runtime环境中运行代码。
scala脚本中的相关行将显示在末尾:
exec "${JAVACMD:=java}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.emacs="$EMACS" scala.tools.nsc.MainGenericRunner "$@"基本上,这会启动运行MainGenericRunner的java。然后,MainGenericRunner会检查您是否已经告诉scala运行您的Scala类。如果是这样,它就会开始运行它。否则,它会启动交互式解释器。
发布于 2012-01-07 03:36:02
Scala (无论如何,在linux上)是一个脚本。输入``more``which scala即可查看内容
你基本上是对的,它基本上设置了一个环境,然后运行java。
发布于 2012-01-08 01:34:58
可以;您可以通过直接从java运行scala应用程序来简单地确认这一点,但是在类路径上使用scala-library.jar。它是有效的--在scala可执行文件中真的没有,没有神奇的。这就是我运行所有scala应用程序的方式。
https://stackoverflow.com/questions/8763343
复制相似问题