如何快速查看Debian系统Java版本以避免兼容性问题?

更新于
2026-09-29 10:18:09
4阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

者主要痛点的观点是,Java 版本不对。项目直接跑不起来

在 Debian 上开发时最让人头疼的就是“在我电脑上能跑”。项目 pom.xml 或 build.gradle 明明要求 Java 11。结果程序默认是 Java 17,编译就报 Unsupported class file version;反过来生产环境是 Java 8,打包好的 jar 启动就出现 NoSuchMethodError 或 ClassNotFoundException。老实说,多个 OpenJDK 并存时不知道实际生效的是哪个 javac 和 java。导致编译与运行版本不一致,调试耗时又无从下手。为避免这种兼容性问题,第一件事就是先快速确认当前程序的 Java 版本。

说到方法一,一键确认当前默认 Java 运行版本

pain point:

如何快速查看Debian系统Java版本以避免兼容性问题?
  • 本地建立成功。一部署到服务器就崩溃,往往是因为默认 java 与期望版本不符。

动手,这个命令是最简单也是最常用的方法。其实,只需要在终端输入以下命令:
java -version

终端会输出当前程序默认的 Java 运行环境 JRE 的/版本号信息。包括 JRE 和 JDK 的/实现名称、版本号和运行时信息。如果未安装或 PATH 未指向正确目录。会提示 command not found,这本身就是一个关键信号。

从/方法二来看,检查 Java 编译器 javac 的实际版本/

/
  • /编译通过但运行时报错。多半是 javac 与 java 版本不一致。
/ / / / / / 编程语言要检查 Debian 程序上 Java 编译器/javac//的/版本号。请执行:
javac -version

p/p安装完成后 运行/javac/ -version 命令以检查新安装的 Java 编译器的版本号,确保编译器与运行时保持一致,避免“同步切换编译器”导致的隐形 bug。 为避免运行与编译/版本号不一致,同时切换 javac。可交互选择:

sudo update-alternatives --config javac
sudo update-alternatives --config java

p/p该命令会列出所有可用的 Java 版本及其安装方法。你可以根据需要选择默认的Java/版本号,避免将不同版本的Java 安装在程序方法 PATH 相同的目录下减少冲突的可能性。

/方法三这方面。列出程序中所有已安装的 OpenJDK 包/

/

  • /不知道机器里装了几个 JDK,卸载旧版时怕删错依赖。
/ / dpkg 是 Debian 程序用来管理软件包的工具。可以通过 dpkg 命令来查看已安装的Java 包信息。从具体操作如下来看,

dpkg -l | grep openjdk

//这将显示所有与 OpenJDK 相关的已安装包的信息。便于梳理并清理冗余版本,说起来,//在 Debian 程序中。你可以打开“软件包管理器”来查看已安装的Java 包。通常,这个软件包管理器叫“软件与更新”。在其中搜索 “Java”。即可看到所有与Java 相关联的软件包,包括 JDK 和 JRE。//在软件包管理器中搜索“Java”。接下来你可以看到所有与Java 相关联的软件包,也是排查来源的好办法。

//在 Debian 程序中,可以通过命令行来查堪/b/view/Java 的/b/version 信息。下面为大家详细说几种常用的方法。//在我看来,Debian 程序通常使用 update-alternatives 来管理多个/b/Java/version。你可以使用以下命令来查询所有已安装的/b/Java/version 及方法:

//sudo update-alternatives --config java
//sudo update-alternatives --list java
//update-alternatives --display java
//update-alternatives --list javac
//update-alternatives --list jar
//update-alternatives --list javadoc
//update-alternatives --list jps
//update-alternatives --list keytool
//update-alternatives --list pack200
//update-alternatives --list rmic
//
//dpkg-query —show —showformat='${Package} ${Version}
' | grep openjdk
//
//ls /usr/lib/jvm/
//
java —XshowSettings:properties —verbose:class —cp . yourApp.java
//

# echo $JA_HOME #

# export JAHOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAHOME/bin:$PATH # export JAHOME=/usr/lib/jvm/java-17-openjdk-amd64 export PATH=$JAHOME/bin:$PATH // which java which javac // whereis java whereis javac // readlink –f $ readlink –f $ // apt list –installed | grep openjdk apt list –installed | grep default-jdk apt-cache policy default-jre default-jdk cat /etc/alternative/configs/java.conf cat /etc/alternative/configs/javac.conf

aptsource.list.d/openjdk

如何快速查看Debian系统Java版本以避免兼容性问题?

apt-cache search ^openjdk-+

dpkg-query –W –showformat='${Package} ${Version} ' openjdk-+

ls /usr/lib/jvm/

rmi registry hostname port

jar tf yourapp.jar

jcmd

jinfo

jps

jstat

jstack

jmap

jshell

jshell tool

jshell script.jsh

/usr/bin/java –XshowSettings : properties

/usr/bin/javadoc –J-Xmx512m …话说回来,

--add-modules ALL-SYSTEM

--add-opens

--patch-module

--module-path

--class-path

--module-source-path

--upgrade-module-path

--limit-modules

--add-reads

--illegal-access=permit/disabled/warn/permit…

/etc/environment 全局设置

/etc/environment 全局设置 // echo ‘export JAHOME=/usr/lib/jvm/java-11-openjdk-amd64’>> ~/.bashrc echo ‘export PATH=$JAHOME/bin:$PATH’>> ~/.bashrc

source ~/.bashrc

source ~/.bash_profile

/etc/profile.d/jdk.sh

//

// //

标签:Debian

者主要痛点的观点是,Java 版本不对。项目直接跑不起来

在 Debian 上开发时最让人头疼的就是“在我电脑上能跑”。项目 pom.xml 或 build.gradle 明明要求 Java 11。结果程序默认是 Java 17,编译就报 Unsupported class file version;反过来生产环境是 Java 8,打包好的 jar 启动就出现 NoSuchMethodError 或 ClassNotFoundException。老实说,多个 OpenJDK 并存时不知道实际生效的是哪个 javac 和 java。导致编译与运行版本不一致,调试耗时又无从下手。为避免这种兼容性问题,第一件事就是先快速确认当前程序的 Java 版本。

说到方法一,一键确认当前默认 Java 运行版本

pain point:

如何快速查看Debian系统Java版本以避免兼容性问题?
  • 本地建立成功。一部署到服务器就崩溃,往往是因为默认 java 与期望版本不符。

动手,这个命令是最简单也是最常用的方法。其实,只需要在终端输入以下命令:
java -version

终端会输出当前程序默认的 Java 运行环境 JRE 的/版本号信息。包括 JRE 和 JDK 的/实现名称、版本号和运行时信息。如果未安装或 PATH 未指向正确目录。会提示 command not found,这本身就是一个关键信号。

从/方法二来看,检查 Java 编译器 javac 的实际版本/

/
  • /编译通过但运行时报错。多半是 javac 与 java 版本不一致。
/ / / / / / 编程语言要检查 Debian 程序上 Java 编译器/javac//的/版本号。请执行:
javac -version

p/p安装完成后 运行/javac/ -version 命令以检查新安装的 Java 编译器的版本号,确保编译器与运行时保持一致,避免“同步切换编译器”导致的隐形 bug。 为避免运行与编译/版本号不一致,同时切换 javac。可交互选择:

sudo update-alternatives --config javac
sudo update-alternatives --config java

p/p该命令会列出所有可用的 Java 版本及其安装方法。你可以根据需要选择默认的Java/版本号,避免将不同版本的Java 安装在程序方法 PATH 相同的目录下减少冲突的可能性。

/方法三这方面。列出程序中所有已安装的 OpenJDK 包/

/

  • /不知道机器里装了几个 JDK,卸载旧版时怕删错依赖。
/ / dpkg 是 Debian 程序用来管理软件包的工具。可以通过 dpkg 命令来查看已安装的Java 包信息。从具体操作如下来看,

dpkg -l | grep openjdk

//这将显示所有与 OpenJDK 相关的已安装包的信息。便于梳理并清理冗余版本,说起来,//在 Debian 程序中。你可以打开“软件包管理器”来查看已安装的Java 包。通常,这个软件包管理器叫“软件与更新”。在其中搜索 “Java”。即可看到所有与Java 相关联的软件包,包括 JDK 和 JRE。//在软件包管理器中搜索“Java”。接下来你可以看到所有与Java 相关联的软件包,也是排查来源的好办法。

//在 Debian 程序中,可以通过命令行来查堪/b/view/Java 的/b/version 信息。下面为大家详细说几种常用的方法。//在我看来,Debian 程序通常使用 update-alternatives 来管理多个/b/Java/version。你可以使用以下命令来查询所有已安装的/b/Java/version 及方法:

//sudo update-alternatives --config java
//sudo update-alternatives --list java
//update-alternatives --display java
//update-alternatives --list javac
//update-alternatives --list jar
//update-alternatives --list javadoc
//update-alternatives --list jps
//update-alternatives --list keytool
//update-alternatives --list pack200
//update-alternatives --list rmic
//
//dpkg-query —show —showformat='${Package} ${Version}
' | grep openjdk
//
//ls /usr/lib/jvm/
//
java —XshowSettings:properties —verbose:class —cp . yourApp.java
//

# echo $JA_HOME #

# export JAHOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAHOME/bin:$PATH # export JAHOME=/usr/lib/jvm/java-17-openjdk-amd64 export PATH=$JAHOME/bin:$PATH // which java which javac // whereis java whereis javac // readlink –f $ readlink –f $ // apt list –installed | grep openjdk apt list –installed | grep default-jdk apt-cache policy default-jre default-jdk cat /etc/alternative/configs/java.conf cat /etc/alternative/configs/javac.conf

aptsource.list.d/openjdk

如何快速查看Debian系统Java版本以避免兼容性问题?

apt-cache search ^openjdk-+

dpkg-query –W –showformat='${Package} ${Version} ' openjdk-+

ls /usr/lib/jvm/

rmi registry hostname port

jar tf yourapp.jar

jcmd

jinfo

jps

jstat

jstack

jmap

jshell

jshell tool

jshell script.jsh

/usr/bin/java –XshowSettings : properties

/usr/bin/javadoc –J-Xmx512m …话说回来,

--add-modules ALL-SYSTEM

--add-opens

--patch-module

--module-path

--class-path

--module-source-path

--upgrade-module-path

--limit-modules

--add-reads

--illegal-access=permit/disabled/warn/permit…

/etc/environment 全局设置

/etc/environment 全局设置 // echo ‘export JAHOME=/usr/lib/jvm/java-11-openjdk-amd64’>> ~/.bashrc echo ‘export PATH=$JAHOME/bin:$PATH’>> ~/.bashrc

source ~/.bashrc

source ~/.bash_profile

/etc/profile.d/jdk.sh

//

// //

标签:Debian