首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于八达通的DDE接口

用于八达通的DDE接口
EN

Stack Overflow用户
提问于 2016-06-08 14:32:13
回答 1查看 582关注 0票数 1

我正在Windows 7上使用Octave 4.0.1 (GUI版本),并试图与DDE服务器对话。我使用的方法与Matlab和JDDE这个问题的答案相同。以下是我迄今所做的工作:

  1. 下载并解压缩JDDE包到C:\Octave\Octave-4.0.1\pretty-tools-JDDE-2.0.3
  2. 在我的“`prefdir”中创建了javaclasspath.txtjavalibrarypath.txt文件。
  3. C:\Octave\Octave-4.0.1\pretty-tools-JDDE-2.0.3\pretty-tools-JDDE-2.0.3.jar添加到javaclasspath.txt中。
  4. C:\Octave\Octave-4.0.1\pretty-tools-JDDE-2.0.3添加到javalibrarypath.txt

此外,我还运行了以下命令:

代码语言:javascript
运行
复制
javaaddpath('C:\Octave\Octave-4.0.1\pretty-tools-JDDE-2.0.3')

我重新启动了Octave,并尝试了以下几点:

代码语言:javascript
运行
复制
>> javaaddpath('C:\Octave\Octave-4.0.1\pretty-tools-JDDE-2.0.3\pretty-tools-JDDE-2.0.3.jar')
>> javaclasspath
   STATIC JAVA PATH

      C:\Octave\Octave-4.0.1\pretty-tools-JDDE-2.0.3\pretty-tools-JDDE-2.0.3.jar

   DYNAMIC JAVA PATH

      C:\Octave\Octave-4.0.1\pretty-tools-JDDE-2.0.3\pretty-tools-JDDE-2.0.3.jar

>>  a = javaObject('com.pretty_tools.dde.client.DDEClientConversation')

error: [java] java.lang.UnsatisfiedLinkError: no JavaDDE in java.library.path
>>  a = javaObject('com.pretty_tools.dde.client.DDEClientConversation')

error: [java] java.lang.NoClassDefFoundError: Could not initialize class com.pretty_tools.dde.client.DDEClientConversation

java类的描述可以找到这里

我做错了什么?错误消息是否与java类/包相关联,还是存在更基本的问题?从Octave到DDE服务器是否有更好的接口?我应该补充一点,虽然我精通MATLAB/Octave,但我对java或DDE一无所知。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-09 21:23:05

嗯,在网上搜索了很多之后,我已经解决了这个问题,所以我会回答我自己的问题。

java错误消息Could not initialize class...似乎通常表示JAR不在类路径中(我在这里知道情况并非如此),或者即使在编译时存在类定义(例如"NoClassDefFoundError:无法初始化类“错误),也无法找到类定义。

在JAR类的目录中,我发现包中也有两个DLL文件,因此我开始预感到JAR文件中定义的java类即使在同一个目录中也找不到DLL文件。

在MATLAB中,有一种叫做librarypath.txt的东西,我们可以引用包含必要DLL的目录(例如这个问题)。在“八达通”中似乎没有这样的选择(至少我找不到)。

因此(解决方案来了),我尝试将包含JAR & DLL文件(C:\Octave\Octave-4.0.1\pretty-tools-JDDE-2.0.3\)的目录添加到Windows中的PATH环境变量中!突然,我能够运行代码,没有任何错误!

注意:对于像我这样的java新手,不需要使用javaaddpath将目录添加到动态java路径,因为它已经通过javaclasspath.txt出现在静态java路径中。不同之处在于,默认情况下,每次启动Octave时都会加载静态路径,而javaaddpath只是暂时将目录添加到路径中(例如,当只需要一个脚本或函数时)。有关更好和更详细的解释,请参见如何使Java类可用于Octave

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37705461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档