温馨提示×

如何在Debian上进行Java编译

小樊
35
2025-12-24 20:29:07
栏目: 编程语言

在 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 ~/.bashrcsource ~/.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
  • 使用构建工具:
    • Mavensudo apt install maven,常用命令:mvn compilemvn packagemvn exec:java -Dexec.mainClass=“com.example.Main”
    • Gradle:在项目根目录执行 gradle buildgradle run
  • 版本匹配建议:
    • 编译器版本应与源码兼容(例如 Java 8 源码建议使用 JDK 8 编译)。

五 常见问题与排查

  • javac: command not found”:未安装 JDK,请安装 default-jdkopenjdk--jdk 并确认 javac -version 有输出。
  • 环境变量不生效:检查 ~/.bashrc~/.profile/etc/environment 的写法与生效方式(是否执行了 source),并用 echo $JAVA_HOME 验证。
  • 类路径错误:确认 -cp 指向包含根包目录的父目录(如 bin),并使用英文冒号 : 分隔多个路径。
  • 多版本并存冲突:使用 update-alternatives --config java/javac 明确选择默认版本。

0