首页 > 解决方案 > java -version 抛出“java.lang.ClassNotFoundException:”

问题描述

我在 Debian 上使用 OpenJDK 11。每当我尝试运行java -version时,我都会得到这个:

Error: Could not find or load main class 
Caused by: java.lang.ClassNotFoundException:

但是,像这样运行是有效的:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java -version

我检查了符号链接,它们都工作正常。如果javac可以工作,为什么不能java,因为它们都在同一个文件夹中。我错过了什么?

尝试运行任何已编译的类时,我都会得到相同的结果。我最近尝试(但失败)切换到不同的 JDK,在此之前我没有这个问题。我的 $PATH 和 $JAVA_HOME 设置正确。

标签: java

解决方案


我终于找到了答案。我退后一步,想出了我在更改默认 JDK 时所采取的确切步骤。当我切换到 13 时,运行 java 会在我的屏幕上回显一堆初始化设置,所以我按照某人的回答来抑制它,这导致了错误。

我已将此行添加到我的 .bash_profile 以抑制它,并将其注释掉,然后重新启动即可解决问题!

_SILENT_JAVA_OPTIONS="$_JAVA_OPTIONS" && unset _JAVA_OPTIONS &&  alias java='java "$_SILENT_JAVA_OPTIONS"'

专业提示:如果您遇到此类错误,只需检查您可能弄乱了哪些环境变量。


推荐阅读