温馨提示×

Java编译Debian注意什么

小樊
41
2026-10-13 23:04:16
栏目: 编程语言

在 Debian 系统上编译 Java 程序(通常指用 javac 编译 .java 文件,或构建 Java 项目),有一些常见但容易忽略的注意点。下面按场景给你总结:


一、JDK 是否安装(最重要)

Debian 默认只有 JRE,没有 JDK。

检查

java -version
javac -version

如果没有 javac,说明没装 JDK。

安装 JDK

sudo apt update
sudo apt install default-jdk

或指定版本(推荐):

sudo apt install openjdk-17-jdk

二、JAVA_HOME 设置

很多构建工具(Maven / Gradle)依赖 JAVA_HOME。

查看 Java 安装路径

readlink -f $(which java)

通常类似:

/usr/lib/jvm/java-17-openjdk-amd64

设置(写入 ~/.bashrc 或 /etc/profile)

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

三、Java 版本兼容性

编译版本

javac -source 11 -target 11 Main.java

⚠ 注意:

  • Debian 旧版本可能只有 Java 8
  • 高版本 Java 编译的 class 不能在低版本 JVM 运行

推荐做法

javac --release 17 Main.java

四、文件编码问题(中文乱码)

Debian 默认可能是 UTF-8,但不一定。

locale

如果不是 UTF-8:

sudo apt install locales
sudo dpkg-reconfigure locales

编译时指定编码:

javac -encoding UTF-8 Main.java

五、权限问题

1. 目录权限

确保有写权限:

mkdir -p bin
javac -d bin src/*.java

2. 执行脚本

chmod +x run.sh
./run.sh

六、使用构建工具(Maven / Gradle)

Maven

sudo apt install maven
mvn compile

Gradle

sudo apt install gradle
gradle build

⚠ Debian 仓库中的 Gradle 可能偏旧,重要项目建议用官方包。


七、内存限制(服务器常见)

编译大项目可能 OOM:

export JAVA_OPTS="-Xmx1g"

Maven:

export MAVEN_OPTS="-Xmx2g"

八、常见问题速查

问题 原因 解决
javac: command not found 没装 JDK 安装 openjdk-*-jdk
中文乱码 编码不一致 -encoding UTF-8
运行时版本错误 编译/运行版本不一致 --release
无法写 class 文件 无目录权限 用 -d 指定目录

如果你是指 在 Debian 上编译 OpenJDK 源码,或者 交叉编译 Java 程序,可以告诉我,我可以给你更具体的步骤。

0 踩