使用matlab中的Java类时,主文件夹发生变化



我正在用matlab ui编写java应用程序。为此,我在matlab中使用java对象,如下所示:http://www.mathworks.com/help/techdoc/matlab_external/f4873.html

这些Java类引用(使用相对路径)到父映射中其他文件夹中的资源。在eclipse或可执行jar中,这一切都工作得很好。

问题是,当类在matlab中使用时,主文件夹发生变化。因此,不是在JAR/资源或PROJECTMAP/资源中查找,而是在MATLAB/资源中查找资源,并返回一个未发现异常的文件。

我目前如何解决它有点蹩脚:我只是将资源文件夹的副本放在MATLAB目录中,使代码执行。然而,这是一个糟糕的解决方案。

我需要的是

1:将资源文件夹包含在jar中(在eclipse中生成),并使其能够在matlab中使用这些类(简而言之:独立当前目录)

2:能够从eclipse运行相同的代码(调试/配置文件…)。

3:代码应该独立于jar所在的位置执行,只要它被添加到matlab类路径中。(因此jar不必在特定的文件夹中(例如MATLAB文件夹))

所以我"简单地"需要一种方法来指定资源文件夹在我的代码中的位置,以实现1,2,3(1,2最重要)。

不确定如何阅读以及如何使用这些资源(因此这可能不是您的情况的正确解决方案),但您确实可能希望将这些放在类路径中。如果您将它们放在eclipse中它们自己的源文件夹中,您可以设置构建以将它们包含在jar中。(按照惯例,Maven有一个/src/main/resources目录,用于将任意文件粘贴到编译后的jar中)。

使用类路径上的这些资源…然后,您可以使用类加载器通过getClass(). getresourcesstream()或getResource()加载文件,并使用它运行。

最新更新