通过coursier安装Scala后找不到scala命令,如何运行编译后的字节码?
原因说明
Scala 3对命令组件做了拆分,旧版Scala 2中统一的scala命令在Scala 3中被拆分为三个独立分发的组件:
scala3-compiler:编译器,对应旧版的scalac命令scala3-repl:交互式解释器,提供交互式代码运行环境scala3:应用运行器,用于运行编译后的Scala 3字节码程序
你之前仅安装了前两个组件,所以缺少对应运行命令。
解决方法
- 方案1:安装缺失的运行组件(最推荐)
直接通过coursier安装运行组件:cs install scala3
安装完成后使用scala3命令替代书中的scala命令即可运行编译后的程序:scala3 Summer of love
如果想要和书中的命令格式完全对齐,可以在你的shell配置文件(如.bashrc、.zshrc)中添加别名配置:
配置生效后即可直接使用书中提到的alias scalac='scala3-compiler' alias scala='scala3'scalac、scala命令,无需额外修改命令名。 - 方案2:直接运行源码(适合小型测试场景)
不需要提前执行编译步骤,直接用scala3命令传入源码文件和运行参数即可直接执行:scala3 ChecksumAccumulator.scala Summer.scala of love - 方案3:通过Java命令运行(不推荐新手使用)
手动将Scala 3运行时库加入JVM类路径后,通过java命令启动主类即可运行。该操作需要自行定位coursier缓存中的Scala 3运行时Jar路径,配置逻辑较为繁琐,仅适合熟悉JVM类加载机制的用户使用。
内容的提问来源于stack exchange,提问作者Ying Xiong
相关产品推荐
相关产品推荐

