有关matlab 的 builder for java,

fengchuan83 2008-01-22 04:28:05
我现在想做一个java调用matlab的应用,最新的matlab2007提供一个组件:builder for java,可以把matlab函数打包成.jar,供java调用,
现在的情况是,我的一个朋友用matlab2007自带的例子(MagicSquareExample)给我做了一个magicsquare.jar包,我本机没有安装matlab,我是用myeclipse6.0开发的,用到的matlab的包就两个:magicsquare.jar和javabuilder.jar,调用matlab的例子也是他自带的,所以代码方面应该不会有什么问题,
但是我执行以后报错了:Exception in thread "main" java.lang.UnsatisfiedLinkError: no nativemcl77 in java.library.path
UnsatisfiedLinkError的错误是:如果 Java Virtual Machine 不能找到被声明为 native 类型的方法的本地语言的定义时抛出该类的实例。no nativemcl77 in java.library.path 这个错误就不知道怎么回事了。
我在网上已经查了2天了,没有这方面的错误,然后我怀疑是不是还有什么matlab的包没有加进来,后来发现matlab下面有一个叫nativemc177.dll的文件,于是我强行的把这个文件拷到了window/system32/下面,结果程序报了另外一个错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\nativemcl77.dll: ?0?7?0?7?0?7?0?3?0?8?0?7???0?0?0?4???0?3?0?1?0?0???0?3?0?9?0?5?0?2?0?5?0?1?0?8?0?7???0?0?0?4???ā0?2?0?5?0?4?0?0?0?9?0?4?0?3?0?5?0?0?0?1?0?4??0?5?0?4?0?8?0?7???0?0?0?4???0?7?0?7?0?2?1?5~?0?8?0?9?0?5?0?9?0?0?0?2?0?2?0?8?0?0?7?3
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.mathworks.toolbox.javabuilder.MWMCR.<clinit>(MWMCR.java:1417)
at com.mathworks.toolbox.javabuilder.MWUtil.GetUnknownClassID(MWUtil.java:1566)
at com.mathworks.toolbox.javabuilder.MWClassID.<clinit>(MWClassID.java:39)
at com.mathworks.toolbox.javabuilder.MWBuiltinArray.<init>(MWBuiltinArray.java:37)
at com.mathworks.toolbox.javabuilder.MWEmptyArray.<init>(MWEmptyArray.java:26)
at com.mathworks.toolbox.javabuilder.MWEmptyArray.<clinit>(MWEmptyArray.java:33)
at com.mathworks.toolbox.javabuilder.MWArray.<clinit>(MWArray.java:23)
at computer.service.getmagic.main(getmagic.java:35)

我实在找不到原因了,这两天正在到处下载matlab2007,看是不是没有安装的原因,但是据官方的介绍,不用安装也能调用阿,希望各位高手能帮组我找到问题的答案,非常非常感谢了!!!
...全文
867 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengchuan83 2008-01-25
  • 打赏
  • 举报
回复
我花了两天时间,终于把matlab2007下下来了,先前的错误不提示了,结果又出来一个错误,
??? Undefined function or variable 'matlabrc'.

Exception: com.mathworks.toolbox.javabuilder.MWException: An error occurred while initializing the component.

奇怪啊,不知道怎么回事呢
fengchuan83 2008-01-25
  • 打赏
  • 举报
回复
终于解决了。。。 相当不容易啊,我把经验跟大家分享一下,希望朋友们少走弯路

1.没有安装matlab2007之前,程序报错:
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\nativemcl77.dll
我查找资料发现,如果不安装matlab,则必须要安装MATLAB Component Run-time(MCR),
2.安装了matlab2007以后,程序还是报了一个错:
??? Undefined function or variable 'matlabrc'.
Exception: com.mathworks.toolbox.javabuilder.MWException: An error occurred while initializing the component.
我不知道这个错误的原因是什么,但是我通过以下方法解决了这个问题--第一,下载jdk1.6(和matlab2007的jdk版本一致),然后把环境变量搭好,主要是java_home和path(java_home是一定要建的,由于我用的是eclipse,所以path无所谓了),第二,新建一个系统用户(因为我当前的这个用户是用中文命名的),不要用中文命名,然后用这个用户登录,运行程序,成功了!

最后再说一下,我就是因为中文用户的原因,好几天都没有调通,所以matlab的相关目录最好是不要有空格和中文,特别是不要有中文
yuanqingfei 2008-01-24
  • 打赏
  • 举报
回复
我感觉你的方向是对的,就是有些dll或者exe没有拷贝过来,你继续走。
另外提醒一下:
你用的JVM最好和Matlab所用的JVM版本一样。
fengchuan83 2008-01-23
  • 打赏
  • 举报
回复
...不会吧,没有人回复?郁闷阿

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧