在新的 Debian 系统上,我使用以下命令安装了 JRE
sudo apt-get install default-jre
然后我下载了一个 jar 文件并尝试运行它:
java -jar server.jar
该文件抛出异常:
java.lang.unsupportedclassversionerror 不支持的major.minor版本52.0
所以我开始寻找解决方案并遵循用户的指示:
sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
后来我意识到我什至没有目录/Library
,因此这个链接没有指向任何地方。
现在我什至无法运行java了:
java -jar server.jar
-bash: /usr/bin/java: No such file or directory
我已经尝试卸载 JRE 并重新安装它:
apt-get remove default-jre
apt-get update
apt-get install default-jre
但这并没有改变任何事情。
Java似乎已安装:
find /usr -name java
/usr/share/bash-completion/completions/java
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
/usr/lib/jvm/java-7-openjdk-amd64/bin/java
答案1
要恢复您的/usr/bin/java
链接,您应该运行
sudo update-java-alternatives -a
如果您使用的是 Debian 9(如最初所述),您不应该遇到这些问题,因为 OpenJDK 8 是默认版本,而 OpenJDK 7 甚至不可用。修复问题以便您可以运行版本 52 类(IEJava 8 类),安装 OpenJDK 8:
sudo apt install openjdk-8-jre
在 Debian 8 上,您可以从向后移植安装 OpenJDK 8:
echo deb http://archive.debian.org/debian jessie-backports main | sudo tee /etc/apt/sources.list.d/jessie-backports.list
echo 'Acquire::Check-Valid-Until "false";' | sudo tee -a /etc/apt/apt.conf
sudo apt update
sudo apt -t jessie-backports install openjdk-8-jre
(看无法获取 jessie 向后移植存储库了解详情。)
然后,您需要专门选择 OpenJDK 8 作为默认值:
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
(要查看可能的值,请运行/usr/sbin/update-java-alternatives -l
。)
答案2
如果您收到如下错误:
bash: /usr/bin/java: No such file or directory
跑步:
apt-get install libc6-i386
一些 32 位库丢失