“JRE 库缺失或不兼容”错误消息

“JRE 库缺失或不兼容”错误消息

当我尝试安装 SPSS(统计分析包)时,sudo ./SPSS_23.0_LNX.bin我得到以下信息:

Preparing to install...    
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...
JRE libraries are missing or not compatible....
Exiting....

我的机器上安装了 OpenJDK 6、OpenJDK 7、Oracle Java 7 和 Oracle Java 8。我依次尝试将它们作为默认安装(每次我都将 JAVA_HOME 环境设置为适当的路径)。每次我都会得到相同的输出和错误消息。

看起来 JRE 已打包在安装程序中,这意味着打包的 JRE 中的库有问题。那么我对此无能为力。这有道理吗?

答案1

我找到了这个解决方案并且它有效。

如果您想要简短版本,只需在输入安装程序后将其添加到行中即可。对我来说,我正在安装 .bin 包。我使用的是以下行:

sudo ./INSTALLER.bin

尝试这个:

sudo ./INSTALLER.bin LAX_VM path_to_java_on_your_machine

因此,对我来说,整个命令是:

sudo ./LiberoSoC_v11.8Linux.bin LAX_VM /usr/lib/jvm/java-8-oracle/jre/bin/java

我需要 sudo,以便实际安装程序在启动后可以写入 /usr/local。

要查看 LAX 工具的运行情况,请使用以下命令设置环境变量 LAX_DEBUG

export LAX_DEBUG=true

现在您可以看到 Lax_vm 正在尝试使用 /tmp 中本地安装的 jre,但由于某种原因,它无法在所有 Linux 平台上工作。通过告诉它您使用系统上安装的 jre,您至少应该让安装程序启动。之后,您就得靠自己了。

答案2

对于没有从 Ubuntu 软件渠道中以软件包形式提供的基于 Java 的应用程序,您很可能必须定义 JAVA_HOME 目录,因为这些应用程序不知道“默认”java deb 软件包。例如在命令行上:

export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"

SPSS 好像是 IBM 的软件,命令如下:

ldd -v  ./SPSS_23.0_LNX.bin

您应该能够看到它想要使用哪些库。

也许它想使用 IBM Java。

IBM Java

答案3

OpenJDK 6、OpenJDK 7、Oracle Java 7 和 Oracle Java 8 均已安装……我每次都将 JAVA_HOME 环境设置为适当的路径

当您使用的软件包包含捆绑的 JRE,并且该 JRE 与您的操作系统不兼容时,就会发生这种情况。一个典型的情况是,JRE 是在 32 位操作系统上构建的,而您在 64 位主机上运行,​​没有 32 位向后兼容性。另一个典型的情况是,该软件包是为不同版本的 Linux 构建的,并且其关键库的路径与glibc您的 Linux 版本不同。

我发现的最简单的修复方法是将不兼容的 JRE 移开,以便您的JAVA_HOME设置生效:

$ export JAVA_HOME=/usr/lib/jre/java-1.8.0
$ mv bin broken-jvm
$ ./program-launcher

我之所以写上述内容,是因为此解决方案并非特定于 SPSS。我发现上述解决方案使用另一个基于 Java 的软件包,它给出的症状与此处发布的症状相同。

相关内容