Matlab无法读取JAR资源

时间:2012-03-22 12:36:04

标签: java matlab resources jar

我正在使用Matlab与Java集成,并且能够链接Java JAR文件,使我能够创建Java对象并从Matlab中调用方法。问题在于资源。例如,如果我有一个位于JAR根目录中的XML文件,我可以从Java应用程序中成功加载它,但不能从Matlab加载。

有没有人知道如何让Matlab访问JAR文件中的资源?

感谢。

2 个答案:

答案 0 :(得分:1)

如果将jar文件添加到MATLAB的动态java类路径中(例如使用javaaddpath),jar中包含的资源将不会对任何Java代码可见。正如this帖子中所讨论的,MATLAB的动态类路径上的项目并不真正位于JVM的类路径上。为了访问我的jar文件中的资源,我尝试将jar添加到静态类路径中。这可以在MATLAB R2012b中通过在启动MATLAB的目录中创建一个名为javaclasspath.txt的文件来完成,该文件包含您正在使用的jar文件列表。 Relevant MATLAB documentation

答案 1 :(得分:0)

从Matlab调用时,正常的Java Class.getResource方法应该可以正常工作。您使用什么语法尝试在Java和Matlab中加载资源?如果使用getResource,您是在从保存资源的同一JAR加载的类上调用它吗?

在Matlab中,静态和动态类路径上的类使用不同的ClassLoader。动态类路径上的JAR中的资源可能对静态类路径上的类不可见。因此,如果您的JAR位于动态类路径上,则需要确保在来自同一ClassLoader的类上调用getResource