在 Debian 上编译 Java 程序时提示“缺少包(package xxx does not exist)”通常有几种常见原因和对应的解决办法。下面按最常见场景给你一个清晰的处理思路。
先确认是否安装了 JDK(不是 JRE):
java -version
javac -version
如果没有 javac,说明只装了 JRE:
sudo apt update
sudo apt install default-jdk
或指定版本:
sudo apt install openjdk-17-jdk
某些包在 Java 9+ 被模块化移除了。
例如:
javax.annotationjavax.xml.bind解决方式(以 JAXB 为例):
sudo apt install libjaxb-java
编译时加上:
javac -cp /usr/share/java/jaxb-impl.jar Main.java
这是最常见情况。
搜索可用包:
apt search libxxx-java
例如:
sudo apt install libmysql-java
sudo apt install libgson-java
查看安装位置:
dpkg -L libgson-java
编译时指定 classpath:
javac -cp /usr/share/java/gson.jar Main.java
mkdir lib
wget https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar -O lib/gson.jar
编译:
javac -cp "lib/*" Main.java
如果是项目级依赖,不要手动管 jar。
sudo apt install maven
pom.xml 里加依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
编译:
mvn compile
如果你在编 Android 或老项目:
android.* → 需要 Android SDKsun.* → 不要使用,已废弃libxxx-java如果你能贴出:
我可以直接告诉你该装哪个包、怎么编译。