在 Ubuntu 下使用 Java 编译(通常是 javac + java,或结合构建工具),有一些实用技巧和常见坑点可以显著提升效率。下面按使用场景整理:
java -version
javac -version
如果没装:
sudo apt update
sudo apt install default-jdk
或指定版本:
sudo apt install openjdk-17-jdk
Java 11 起支持单文件直接运行:
java Hello.java
无需先 javac,适合学习和小工具。
Ubuntu 默认 UTF-8,但 Windows 文件常是 GBK:
javac -encoding UTF-8 Main.java
否则容易:
error: unmappable character
javac -d out src/*.java
运行时:
java -cp out Main
find src -name "*.java" > sources.txt
javac -d out @sources.txt
src/com/example/Main.java
package com.example;
编译:
javac -d out src/com/example/*.java
运行:
java -cp out com.example.Main
javac -cp lib/foo.jar -d out Main.java
java -cp out:lib/foo.jar Main
⚠️ Linux 用 : 分隔,不是 ;
mvn compile
mvn package
gradle build
适合:
javac -g Main.java
javac -Xlint:all Main.java
javac --release 21 --enable-preview Main.java
java --enable-preview Main
| 问题 | 原因 | 解决 |
|---|---|---|
| 中文乱码 | 编码不一致 | -encoding UTF-8 |
| 找不到类 | classpath 错 | -cp 正确 |
| 版本不兼容 | JDK 不匹配 | java -version |
| IDE 能跑,命令行不能 | 依赖未加 | 检查 jar |
jcmd、jstack 排查运行问题如果你有具体场景(如:学生作业 / Spring 项目 / Android / 服务器部署),我可以给你更针对性的 Ubuntu Java 编译方案。