Can't import Java library jdde in MATLAB

조회 수: 10(최근 30일)
852053843
852053843 2012년 7월 17일
답변: Karthik Wakshe 2022년 5월 4일
I'm trying to use jdde, but I can't access the classes in the jar file from MATLAB:
javaaddpath('C:\jdde\pretty-tools-JDDE-1.0.2.jar')
conversation = DDEClientConversation();
I get the following error:
??? Undefined function or variable 'DDEClientConversation'.
According to the documentation and the many examples I've looked at this should work. How do I use this library in MATLAB? What is my mistake?
Edit:
I tried adding the package to my static class path, but now I get the following error:
>> conversation = com.pretty_tools.dde.client.DDEClientConversation();
Warning: A Java exception occurred trying to load the com/pretty_tools/dde/client/DDEClientConversation class:
Java exception occurred:
java.lang.UnsatisfiedLinkError: no JavaDDEx64 in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.pretty_tools.dde.client.DDEClientConversation.<clinit>(DDEClientConversation.java:382)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.mathworks.jmi.OpaqueJavaInterface.findClass(OpaqueJavaInterface.java:470)
??? Undefined variable "com" or class "com.pretty_tools.dde.client.DDEClientConversation".

채택된 답변

Malcolm Lidierth
Malcolm Lidierth 2012년 7월 17일
JavaDDEx64 looks like a shared library/dll which cannot be found. You need to add it to the library path. A quick way, if you have access, is just to put a copy in your matalbroot()/bin/$arch folder ($arch will be macos/win64 etc).
  댓글 수: 1
852053843
852053843 2012년 7월 17일
Thanks, this was the solution! Since I don't have writing privilege on my matlabroot, I added 'C:\jdde\' to a copy of librarypath.txt that now resides in my startup folder. JavaDDEx64.dll which is located there is now found by MATLAB.

댓글을 달려면 로그인하십시오.

추가 답변(2개)

Srikrishnan
Srikrishnan 2014년 6월 14일
I am facing a similar problem. I have a JAR file(fbsc.jar) with two class files. They are both based on another JAR file which I am able to successfully inport and use. When I import the class files of fbsc.jar in JAVA and use it I am able to do it succesfully. However when I do it in MATLAB(2012a) I get the error undefined function or variable.
I have added it in the dynamic path. Still no use. I am not able to figure out what am I doing wrong. I have been stuck on it for days now and still no progress.Any kind of help would be appreciated. Thanks
  댓글 수: 1
Malcolm Lidierth
Malcolm Lidierth 2014년 6월 22일
R2012a uses Java 6 by default. Has fbsc.jar been compiled with a later Java version?

댓글을 달려면 로그인하십시오.


Karthik Wakshe
Karthik Wakshe 2022년 5월 4일
Exception in thread "Thread-6": java.lang.UnsatisfiedLinkError: C:\Users\Admin\Desktop\MATLAB\R2022a\bin\win64\nativedmatlab.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at com.mathworks.toolbox.distcomp.nativedmatlab.NativeMethods.<clinit>(NativeMethods.java:7)
at com.mathworks.toolbox.distcomp.ui.desk.RunBatchJobActionProvider.lambda$initialize$0(RunBatchJobActionProvider.java:58)
at java.lang.Thread.run(Thread.java:748)
I am facing this issue how should i resolve this?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by