在我的 Java 编程生涯中使用过很多 Java 开发环境,从编写第一个 Java 程序使用的 Notepad++ 到 Eclipse 再到 IntelliJ IDEA。能编写 Java 的 IDE 产品有很多,如何选择一个好的 Java 开发环境?这对于从事 Java 程序设计的程序员来说是一个重要的问题。选择一个合适的 IDE 不仅能提高开发效率,还能减少调试和排错的时间。本篇文章将分享一些选择 Java 开发环境的关键考虑因素,并介绍如何通过 WSL + VSCode 打造一个混合开发基础 IDE 环境来开发 Java 程序。
从事 Java 程序开发的程序员主流都是做服务器端程序开发。在编写程序项目源代码阶段,通常使用 Windows 系统的 PC 进行开发工作,而当程序部署上线之后,往往运行在 Linux 系统环境中。这就要求我们不仅要熟悉 Windows 系统,还要熟悉 Linux 系统,才能更好地编写和调试 Java 程序。这也是选择开发环境时需要考虑的一个重要因素,因为一个好的 IDE 应该能够方便地在不同操作系统之间切换,并提供良好的跨平台兼容性。
目前主流的 Eclipse 和 IntelliJ IDEA 都是重量级的 Java 集成开发环境,并且针对不同系统架构开发了对应的版本。程序员在 IntelliJ IDEA for Windows 版本下开发,就必须使用 Windows 下的一些开发和调试技巧,而在 IntelliJ IDEA for Linux 中又需要掌握一些 Linux 下特有的功能和设置。那么有没有一种折中的解决方案,可以在 Windows 开发 Java 程序并且能获得 Linux 系统中的一些开发体验和特有功能呢?答案是有的。
基础 WSL 配置
使用 WSL 和 VSCode 作为基础开发环境,最低要求操作系统为 Windows 10。如果使用 Windows 11 则更为理想。在 Windows 11 系统中,WSL 功能已默认开启,但要正常使用还是需要一点额外的操作。WSL 本身不提供完整的 Linux 系统功能,只是提供了一个与 Linux 兼容的内核接口层和虚拟化技术在轻量级虚拟机 VM 中运行 Linux 内核,再配合其兼容层的功能使用户能够无缝结合使用 Windows 和 Linux 的功能。
可以通过在终端中输入以下命令来查看 WSL 官方提供的 Linux 发行版:
# 查看能安装的 WSL Linux 版本
wsl --list --online
通过列出的版本信息,建议使用默认的 Ubuntu 即可,按照指定的 Linux 发行版本到 Windows 11 系统中:
# 指定对应的 Linux 版本进行安装
wsl --install -d Ubuntu
通过以上命令就可以安装 Linux 发行版本到 Windows 系统中,命令执行流程如下图:
当有多 Linux 版本环境需求时,可以进行多个版本的选择性安装,同样使用 wsl --install -d <发行版本名称>
来获取相应的版本安装,查看已经安装的 Linux 发行版本可以使用 wsl --list --verbose
命令查看,下面是一组常用的命令:
功能 | 命令 |
---|---|
安装指定的版本 | wsl --install -d <发行版本名称> |
查看已经安装的版本 | wsl --list --verbose |
选择启动指定的 Linux 发行版 | wsl -d Ubuntu |
更新 WSL 程序 | wsl --update |
查看 WSL 状态 | wsl --status |
以某个身份用户运行 | wsl --user |
关闭 WSL 的 VM | wsl --shutdown |
上面只列出一些相对常用的 WSL 命令,在其官网文档上有列出更多命令说明 WSL 的基本命令 。
# 更新包列表和升级系统所有已安装的软件包
sudo apt update && sudo apt upgrade
{
// Java 基础环境配置
"java.jdt.ls.java.home": "/Users/dings/.sdkman/candidates/java/current",
// maven 使用默认的 Java Home 路径
"maven.terminal.useJavaHome": true,
// maven 可执行文件文件路径
"maven.executable.path": "/Users/dings/devsoft/apache-maven-3.9.0/bin/mvn",
// maven 全局配置文件
"maven.settingsFile": "/Users/dings/devsoft/apache-maven-3.9.0/conf/settings.xml",
// 在菜单栏显示 maven
"maven.showInExplorerContextMenu": true,
}
{
"version": "2.0.0",
"tasks": [
// 编译 java 源代码
{
"label": "Compiler Project",
"type": "shell",
"command": "javac",
// javac 能使用的参数
"args": [
"-d",
"${workspaceFolder}/bin",
"${workspaceFolder}/src/**/*.java"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [],
"detail": "Compiles all Java files in the src directory"
},
// 清理编译 class 文件
{
"label": "Clean Project",
"type": "shell",
// 调用系统 rm 目录清理文件夹
"command": "rm",
"args": [
"-rf",
"${workspaceFolder}/bin"
],
"group": "none",
"problemMatcher": [],
"detail": "Clean all Java files in the bin directory"
}
]
}