Java和matlab混合编程 java调用.jar包中方法时参数传递出错的解决办法

时间:2024-03-15 14:27:34

    问题描述:懒得重现错误的场景,在别人的描述界面偷了张图(https://bbs.csdn.net/topics/390794513,帖子里面描述了问题但没有提供解决办法qvq)

error:The method bwtraceboundary_proc4(int, Object[]) in the type BwtraceBoundary_Pro is not applicable for the arguments (int, String, MWNumericArray)

Java和matlab混合编程 java调用.jar包中方法时参数传递出错的解决办法

解决办法:因为经历了太多步骤,在网上也没有找到一个解决办法,所以我也不知道是哪步起了作用,只能把做过的尝试都列举出来,仅供参考,如果有问题可以留言,希望能帮到你^o^

Java和matlab混合编程 java调用.jar包中方法时参数传递出错的解决办法

  1)因为很明显提示是输入变量的类型不匹配,所以我就将输入的MWNumericArray类型变量都改成提示的List(当然你的可能是object[]等等),改好之后,可以运行了!!感觉看到了希望,but...运行报错了qvq

Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to find the library mclmcrrt8_3.dll, required by MATLAB Builder JA, on java.library.path.

This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or the current path configuration.

2) 因为找不到mclmcrrt8_3.dll文件,于是我就参考网上的方法(1)再安装一次MCRinstaller.exe (在matlab目录下搜索这个文件就好)(2)修改环境变量把path里面的这个新安装的目录(安装后一般这个会出现在最后一位)上移到第一个。

Java和matlab混合编程 java调用.jar包中方法时参数传递出错的解决办法

修改完成后,不报这个错了,but...又报了一个错

Too many input arguments.

3)那就是变量类型冲突咯?可达鸭眉头一皱,此事并不简单。不让我用MWNumericArray类型,用了匹配的类型又表示变量类型冲突?好像有点矛盾,于是我再次尝试把array改成MWNumericArray

成功运行。

Java和matlab混合编程 java调用.jar包中方法时参数传递出错的解决办法