在 Debian 上进行 Java 编译的完整指南
一 安装与验证 JDK
- 更新软件源并安装开发工具包:
- 安装默认 JDK:sudo apt update && sudo apt install default-jdk
- 或安装指定版本(如 OpenJDK 11):sudo apt install openjdk-11-jdk
- 验证安装结果:
- 查看运行时版本:java -version
- 查看编译器版本:javac -version
- 说明:JDK 包含 javac 编译器;若仅安装 JRE 将没有编译能力。
二 设置 JAVA_HOME 与 PATH
- 查找实际安装路径(推荐方式):
- 执行:readlink -f $(which java) | sed “s:bin/java::”,输出类似 /usr/lib/jvm/java-11-openjdk-amd64
- 配置环境变量(全局或用户级均可):
- 全局(所有用户):编辑 /etc/environment,添加例如:
- JAVA_HOME=“/usr/lib/jvm/java-11-openjdk-amd64”
- 若文件未导出变量,可追加:export JAVA_HOME
- 用户级:编辑 ~/.bashrc 或 ~/.profile,添加:
- export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
- export PATH=$JAVA_HOME/bin:$PATH
- 使配置生效:
- 全局:source /etc/environment
- 用户级:source ~/.bashrc 或 source ~/.profile
- 验证:echo $JAVA_HOME 应显示所设路径。
三 使用 javac 编译与运行
- 单文件编译与运行:
- 示例:javac HelloWorld.java && java HelloWorld
- 多包结构(源码在 src,输出到 bin):
- 编译:javac -sourcepath src -d bin src/com/example/Hello.java
- 运行:java -cp bin com.example.Hello
- 常用编译选项:
- 开启全部警告:javac -Xlint:all
- 生成调试信息:javac -g
- 类路径要点:
- 多个路径使用英文冒号 : 分隔(Linux/Unix 规范)。
四 多版本管理与构建工具
- 多版本 Java 切换:
- 列出/切换:sudo update-alternatives --config java(同理可对 javac 执行)
- 注册新版本示例:
- sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-amd64/bin/java 300
- sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac 300
- 使用构建工具:
- Maven:sudo apt install maven,常用命令:mvn compile、mvn package、mvn exec:java -Dexec.mainClass=“com.example.Main”
- Gradle:在项目根目录执行 gradle build、gradle run
- 版本匹配建议:
- 编译器版本应与源码兼容(例如 Java 8 源码建议使用 JDK 8 编译)。
五 常见问题与排查
- “javac: command not found”:未安装 JDK,请安装 default-jdk 或 openjdk--jdk 并确认 javac -version 有输出。
- 环境变量不生效:检查 ~/.bashrc、~/.profile 或 /etc/environment 的写法与生效方式(是否执行了 source),并用 echo $JAVA_HOME 验证。
- 类路径错误:确认 -cp 指向包含根包目录的父目录(如 bin),并使用英文冒号 : 分隔多个路径。
- 多版本并存冲突:使用 update-alternatives --config java/javac 明确选择默认版本。