You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在离线Linux机器上运行无对象包裹的Scala极简脚本?

解决离线Linux下Scala 3脚本运行问题

为什么无对象脚本报错?

你使用的scala命令默认会把文件当作完整Scala程序编译,这类程序要求顶级内容只能是类、对象定义(比如带main方法或extends App的object),直接写println这类语句属于非法顶级定义,因此报错。官网的无对象示例是Scala脚本,需要启用脚本模式才能运行。

现有Scala 3安装包的解决办法

不用额外工具,给scala命令加-script选项即可运行无对象脚本:

scala -script script.scala

如果想更方便,可给脚本加shebang头并赋予执行权限:

  1. 修改script.scala开头:
#!/usr/bin/env scala -script
println("Hello from Scala script!")
  1. 添加可执行权限:
chmod +x script.scala
  1. 直接运行:
./script.scala

关于Scala CLI

你了解的没错,Scala CLI是官方主推的新一代工具,未来会逐步替代传统scala命令,它默认支持脚本模式,无需额外选项就能运行无对象脚本。

离线环境部署Scala CLI

  1. 在联网机器上下载对应Linux的Scala CLI二进制文件,同时提前缓存Scala 3.3.1依赖:
# 下载x86_64架构二进制
curl -L -o scala-cli https://github.com/VirtusLab/scala-cli/releases/latest/download/scala-cli-x86_64-pc-linux
chmod +x scala-cli
# 缓存Scala 3.3.1依赖
./scala-cli cache install scala:3.3.1
  1. 将scala-cli二进制和缓存目录(默认在~/.cache/scala-cli)复制到离线机器的对应位置。
  2. 离线机器上直接运行脚本:
scala-cli script.scala

离线环境最佳方式

  • 临时需求:用现有Scala 3安装包,加-script选项运行脚本,简单直接。
  • 长期使用:部署Scala CLI,提前准备好离线二进制和依赖缓存,体验更顺畅,也符合官方生态演进方向。

内容的提问来源于stack exchange,提问作者halloleo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:35:23