Matlab没有看到.jar文件

时间:2013-12-18 16:38:20

标签: java matlab jar

好的,我在这里难过。我正在使用Matlab版本2013b,Java RTE为1.7.0_11,我正在尝试运行一段简单的代码来查看Matlab是否能够读取.jar文件,似乎没有任何工作。

这是Java代码,它被编译为名为JavaOCT.jar的.jar,它放在Matlab工作目录中:

package VTK;

public class vtkVolumeView{
     public int Test(){
       return 10;
     }
}

就是这样,没有其他依赖,没什么特别的。在Matlab中,我尝试:

javaaddpath('\JavaOCT.jar');   %<-Directory and name are 100% correct
import VTK.*;                   %<-Package name from above
methodsview VTK.vtkVolumeView;  %<-Can't find the class, argh! 

Matlab回击说它无法找到该类。

我为尝试解决问题而做的事情:

  1. 恢复与Matlab RTE完全相同的JDK
  2. 尝试过较旧的1.6 JDK
  3. 完成大量的堆栈溢出研究以尝试解决它1 2 3 4
  4. 尝试使用javaclasspath并指向已编译的类
  5. 阅读Matlab文档5
  6. clear -java
  7. 之后使用javaaddpath

    任何帮助都会受到赞赏,这让我疯了!

    更新:Daniel R建议只javaaddpath('JavaOCT.jar'),但也不起作用。

    最终更新:终于有效了!我没有正确地构建.jar。在IntelliJ中,单击项目并按F4。这将打开项目结构,然后转到工件并单击绿色+按钮并添加DirectoryContent,然后指向out\production。一旦完成此操作,如其他人所述,它应该在Matlab中显示为可扩展的.jar。

2 个答案:

答案 0 :(得分:1)

我不知道您使用的操作系统,但./似乎无效。

尝试javaaddpath('JavaOCT.jar');javaaddpath(fullfile(pwd,'JavaOCT.jar'));

exist(fullfile(pwd,'JavaOCT.jar'))返回什么?

答案 1 :(得分:1)

有些事情要尝试:

  1. 添加类文件。使用程序包时,需要在程序包的主机中添加类文件。例如,如果您的代码在此处:

    \\full\path\to\code\VTK\vtkVolumeView.class
    

    然后使用:

    javaaddpath('\\full\path\to\code')
    
  2. 我仍然怀疑你的* .jar路径。添加jar文件时,通常应该使用绝对路径。尝试添加which('JavaOCT.jar')

  3. 的结果
  4. 你是如何制作jar档案的?它是否包含包声明隐含的相应目录结构?