java - 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 设置正确。
解决方案
我终于找到了答案。我退后一步,想出了我在更改默认 JDK 时所采取的确切步骤。当我切换到 13 时,运行 java 会在我的屏幕上回显一堆初始化设置,所以我按照某人的回答来抑制它,这导致了错误。
我已将此行添加到我的 .bash_profile 以抑制它,并将其注释掉,然后重新启动即可解决问题!
_SILENT_JAVA_OPTIONS="$_JAVA_OPTIONS" && unset _JAVA_OPTIONS && alias java='java "$_SILENT_JAVA_OPTIONS"'
专业提示:如果您遇到此类错误,只需检查您可能弄乱了哪些环境变量。
推荐阅读
- php - 使用 PHP SDK 向 Twilio Studio 发送可选参数以触发 Flow
- excel - ActiveWorkbook.Names.Add 生成错误“此名称的语法不正确”。
- java - Pivotal 服务器实例抛出错误“无法启动组件”,但对于不同目录中的同一实例工作正常
- java - Python 中对公平锁的官方支持
- python - 为什么 libpython3.6.so 比 python2.7 可执行文件大得多?
- entity-framework - foreach 循环中的 TransactionScope EF Net Core 回滚完成
- mysql - mysqldump 在一个命令中将所有表导出为单独的 .sql 文件
- javascript - 关于如何从保存在变量中的复选框数据生成总计的建议
- php - PHPUnit 中的 --report-useless-tests 发生了什么?
- python - Stocktwits API - 从脚本获取访问令牌,无需用户交互