八度和Java:未找到libjvm.so

问题描述 投票:0回答:2

我正在尝试在GNU Octave中使用WFDB toolbox for Matlab from Physionet。一个先决条件是将GNU Octave 3.8.1或更高版本与Java软件包一起使用,因此我为Debian 7.8对其进行了编译,然后从Octave中安装了Java软件包。我不确定是否正确进行了编译,在配置过程中Java接口出现了一些问题。

问题是,从Octave调用Java方法时,出现此错误:

error: javaMethod: 
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/client/libjvm.so:
failed to load:
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/client/libjvm.so:
cannot open shared object file: No such file or directory

我检查了文件是否存在,并且发现“客户端”文件夹不存在。另一方面,存在“服务器”文件夹,我也发现

/usr/lib/jvm/java-1.5.0-gcj-4.7/jre/lib/amd64/client

我无法弄清楚为什么缺少这些文件,我不是Java程序员,也不是GNU / Linux专家。

非常感谢您的帮助。

java debian octave
2个回答
0
投票

您不需要安装Java软件包。 java软件包中的功能已合并到3.8版本的Octave核心语言中。您不需要做任何事情,java应该为您开箱即用(前提是您在构建它时不会弄乱它)。如果您在Octave 3.8安装中安装了Java软件包,则可能是在掩盖其自身的功能。

我建议您在Debian存储库上使用Octave版本。您正在使用Debian 7(轮流使用),因此可以使用wheezy-backports which already have Octave 3.8.2。如果您不熟悉从源代码进行构建,那么Debian已经为您提供了一个。


0
投票

我在CentOs7上使用Octave 4.2.1遇到类似的问题。

dobj = javaObject(“ java.lang.Double”,pi);

给予

错误:javaObject:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/lib/amd64/server/libjvm.so:加载失败:/ usr / lib / jvm / java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64 / jre / lib / amd64 / server / libjvm.so:无法打开共享对象文件:无此类文件或目录] >

我得到八度音阶:

system('java -version')

openjdk版本“ 1.8.0_232”OpenJDK运行时环境(内部版本1.8.0_232-b09)OpenJDK 64位服务器VM(内部版本25.232-b09,混合模式)

Java安装在这里:

/ usr / lib / jvm / java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 / jre / lib / amd64 / server / libjvm.so

但是我可以在八度中切换搜索路径吗?

© www.soinside.com 2019 - 2024. All rights reserved.