首页 > 解决方案 > 在 MATLAB 中从 java .class 运行 main 并附带 .jar 编解码器文件

问题描述

我有一个从 Matlab 中的 java 类运行的主要方法。java 类文件中使用的一些方法位于 .jar 文件中。

我的 javaclasspath.txt 看起来像这样:

C:\***\somefolder\commons-codec-1.7.jar
C:\***\somefolder

'X.class' 文件是 'somefolder' 文件夹,以及它需要运行的 commons-codec-1.7.jar 文件。

我的 Matlab Java 版本如下:

'Java 1.8.0_201-b09 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode'

环境变量 MATLAB_HOME 指向:

'C:\Program Files\Java\jdk1.8.0_201\jre'

java .class 脚本是使用此 SDK 编译的。

我的 MATLAB 代码是:


import commons-codec-1.7.*
o = 'X'
javaMethod('main',o,'')

输出此错误:


Java exception occurred:
java.lang.NoSuchMethodError:
org.apache.commons.codec.binary.Base64.encodeBase64String([B)Ljava/lang/String;

    at X.main(X.java:28)

根据我的理解,MATLAB 未能在“commonds-codec-1.7.jar”中找到所需的方法。我该如何解决这个问题。

谢谢

标签: javamatlab

解决方案


我让它工作。

解决方案是将 javaclasspath.txt 更改为:

 <before> C:\***\somefolder\commons-codec-1.7.jar
 C:\***\somefolder

这会强制 commons-codec-1.7.jar 覆盖我的 MATLAB 安装的默认静态路径中的 commons-codec.jar。


推荐阅读