Skip to content

Scala 安装及环境配置

本章将指导你完成 Scala 开发环境的搭建,包括 JDK、Scala、构建工具和 IDE 的安装配置。

系统要求

在开始之前,确保你的系统满足以下要求:

  • 操作系统: Windows 10+、macOS 10.14+、或 Linux
  • 内存: 至少 4GB RAM(推荐 8GB+)
  • 磁盘空间: 至少 2GB 可用空间
  • 网络: 稳定的互联网连接(用于下载依赖)

第一步:安装 Java JDK

Scala 运行在 Java 虚拟机 (JVM) 上,因此首先需要安装 JDK。

检查现有 Java 安装

打开终端或命令提示符,运行:

bash
java -version
javac -version

如果显示 Java 8 或更高版本,可以跳过 JDK 安装。

安装 JDK

方法一:使用 SDKMAN(推荐)

SDKMAN 是管理多个 JDK 版本的优秀工具:

bash
# 安装 SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

# 安装 JDK
sdk install java 17.0.2-open
sdk use java 17.0.2-open

方法二:直接下载安装

  1. 访问 OpenJDK 官网Oracle JDK 官网
  2. 下载适合你操作系统的 JDK 17 或更高版本
  3. 按照安装向导完成安装
  4. 配置环境变量 JAVA_HOME

验证 JDK 安装

bash
java -version
# 应该显示类似:
# openjdk version "17.0.2" 2022-01-18

第二步:安装 Scala

方法一:使用 SDKMAN(推荐)

bash
# 安装 Scala
sdk install scala 3.2.2
sdk use scala 3.2.2

# 验证安装
scala -version

方法二:使用 Coursier

Coursier 是 Scala 社区推荐的安装工具:

Linux/macOS:

bash
curl -fL https://github.com/coursier/launchers/raw/master/cs-x86_64-pc-linux.gz | gzip -d > cs
chmod +x cs
./cs setup

Windows:

下载并运行 cs-x86_64-pc-win32.exe

方法三:手动安装

  1. 访问 Scala 官网
  2. 下载最新的 Scala 发行版
  3. 解压到合适的目录
  4. bin 目录添加到 PATH 环境变量

验证 Scala 安装

bash
scala -version
# 应该显示类似:
# Scala code runner version 3.2.2

第三步:安装 sbt(Scala Build Tool)

sbt 是 Scala 的标准构建工具。

使用 SDKMAN 安装

bash
sdk install sbt 1.8.2

使用包管理器安装

macOS (Homebrew):

bash
brew install sbt

Ubuntu/Debian:

bash
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
sudo apt-get update
sudo apt-get install sbt

Windows:

下载并安装 sbt-1.8.2.msi

验证 sbt 安装

bash
sbt --version
# 应该显示类似:
# sbt version in this project: 1.8.2

第四步:选择和配置 IDE

IntelliJ IDEA(推荐)

IntelliJ IDEA 是 Scala 开发的首选 IDE。

安装步骤:

  1. 下载 IntelliJ IDEA Community Edition(免费)
  2. 安装并启动 IDEA
  3. 安装 Scala 插件:
    • 打开 FileSettingsPlugins
    • 搜索 "Scala" 并安装
    • 重启 IDEA

配置 Scala SDK:

  1. 打开 FileProject Structure
  2. 选择 Global Libraries
  3. 点击 +Scala SDK
  4. 选择已安装的 Scala 版本

Visual Studio Code

VS Code 也是不错的选择,特别适合轻量级开发。

安装步骤:

  1. 下载并安装 VS Code
  2. 安装 Scala 扩展:
    • 打开扩展面板 (Ctrl+Shift+X)
    • 搜索并安装 "Scala (Metals)"
    • 安装 "Scala Syntax (official)"

Vim/Neovim

对于 Vim 用户,可以使用 coc-metals 插件。

第五步:创建第一个 Scala 项目

使用 sbt 创建项目

bash
# 创建项目目录
mkdir my-first-scala-project
cd my-first-scala-project

# 创建基本的项目结构
mkdir -p src/main/scala
mkdir -p src/test/scala

# 创建 build.sbt 文件
cat > build.sbt << EOF
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "3.2.2"

lazy val root = (project in file("."))
  .settings(
    name := "my-first-scala-project"
  )
EOF

创建 Hello World 程序

bash
# 创建主程序文件
cat > src/main/scala/Main.scala << 'EOF'
@main def hello(): Unit =
  println("Hello, Scala!")
  println("Welcome to the world of functional programming!")
EOF

运行程序

bash
# 编译并运行
sbt run

# 或者进入 sbt shell
sbt
> run
> exit

你应该看到输出:

Hello, Scala!
Welcome to the world of functional programming!

第六步:使用 Scala REPL

Scala REPL(Read-Eval-Print Loop)是学习和实验的好工具。

启动 REPL

bash
scala

在 REPL 中尝试一些代码

scala
scala> val name = "World"
val name: String = World

scala> println(s"Hello, $name!")
Hello, World!

scala> val numbers = List(1, 2, 3, 4, 5)
val numbers: List[Int] = List(1, 2, 3, 4, 5)

scala> val doubled = numbers.map(_ * 2)
val doubled: List[Int] = List(2, 4, 6, 8, 10)

scala> :quit  // 退出 REPL

项目结构说明

标准的 Scala 项目结构如下:

my-scala-project/
├── build.sbt                 # 构建配置文件
├── project/                  # sbt 项目配置
│   ├── build.properties      # sbt 版本
│   └── plugins.sbt           # sbt 插件
├── src/
│   ├── main/
│   │   ├── scala/            # 主要源代码
│   │   └── resources/        # 资源文件
│   └── test/
│       ├── scala/            # 测试代码
│       └── resources/        # 测试资源
├── target/                   # 编译输出(自动生成)
└── lib/                      # 本地依赖库(可选)

常用 sbt 命令

bash
sbt compile      # 编译项目
sbt run          # 运行项目
sbt test         # 运行测试
sbt clean        # 清理编译输出
sbt console      # 启动带项目类路径的 Scala REPL
sbt reload       # 重新加载构建配置
sbt update       # 更新依赖

配置文件示例

build.sbt 详细配置

scala
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "3.2.2"
ThisBuild / organization := "com.example"

lazy val root = (project in file("."))
  .settings(
    name := "my-scala-project",
    
    // 依赖库
    libraryDependencies ++= Seq(
      "org.scalatest" %% "scalatest" % "3.2.15" % Test,
      "org.typelevel" %% "cats-core" % "2.9.0"
    ),
    
    // 编译器选项
    scalacOptions ++= Seq(
      "-deprecation",
      "-feature",
      "-unchecked",
      "-Xfatal-warnings"
    ),
    
    // JVM 选项
    javaOptions ++= Seq(
      "-Xmx2G",
      "-XX:+UseG1GC"
    )
  )

project/build.properties

properties
sbt.version=1.8.2

故障排除

常见问题

1. Java 版本不兼容

错误: Unsupported major.minor version

解决: 确保使用 Java 8 或更高版本

2. sbt 下载依赖慢

解决: 配置国内镜像源

创建 ~/.sbt/repositories 文件:

[repositories]
local
aliyun-central: https://maven.aliyun.com/repository/central
aliyun-public: https://maven.aliyun.com/repository/public
maven-central

3. IDE 无法识别 Scala 代码

解决:

  • 确保安装了 Scala 插件
  • 检查项目是否正确导入
  • 重新导入项目

性能优化

增加 sbt 内存

在项目根目录创建 .sbtopts 文件:

-Xmx2G
-XX:+UseG1GC
-XX:+CMSClassUnloadingEnabled

启用并行编译

build.sbt 中添加:

scala
Global / concurrentRestrictions += Tags.limit(Tags.Compile, 4)

验证安装

创建一个测试脚本来验证所有工具是否正确安装:

bash
#!/bin/bash
echo "=== Scala Environment Check ==="

echo "1. Java version:"
java -version

echo -e "\n2. Scala version:"
scala -version

echo -e "\n3. sbt version:"
sbt --version

echo -e "\n4. Creating test project..."
mkdir -p test-scala-env/src/main/scala
cd test-scala-env

cat > build.sbt << 'EOF'
scalaVersion := "3.2.2"
name := "test-env"
EOF

cat > src/main/scala/Test.scala << 'EOF'
@main def test(): Unit =
  println("✅ Scala environment is working correctly!")
EOF

echo "5. Compiling and running test..."
sbt run

cd ..
rm -rf test-scala-env

echo -e "\n🎉 Environment setup complete!"

下一步

现在你已经成功搭建了 Scala 开发环境!接下来我们将学习:

  • Scala 基础语法 - 了解 Scala 的基本语法规则
  • 如何编写和运行 Scala 程序
  • Scala 的核心概念和特性

准备好开始编写 Scala 代码了吗?让我们继续学习!

本站内容仅供学习和研究使用。