好的,我在这里难过。我正在使用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回击说它无法找到该类。
我为尝试解决问题而做的事情:
javaclasspath
并指向已编译的类clear -java
javaaddpath
醇>
任何帮助都会受到赞赏,这让我疯了!
更新:Daniel R建议只javaaddpath('JavaOCT.jar')
,但也不起作用。
最终更新:终于有效了!我没有正确地构建.jar。在IntelliJ中,单击项目并按F4。这将打开项目结构,然后转到工件并单击绿色+按钮并添加DirectoryContent
,然后指向out\production
。一旦完成此操作,如其他人所述,它应该在Matlab中显示为可扩展的.jar。
答案 0 :(得分:1)
我不知道您使用的操作系统,但./
似乎无效。
尝试javaaddpath('JavaOCT.jar');
或javaaddpath(fullfile(pwd,'JavaOCT.jar'));
。
exist(fullfile(pwd,'JavaOCT.jar'))
返回什么?
答案 1 :(得分:1)
有些事情要尝试:
添加类文件。使用程序包时,需要在程序包的主机中添加类文件。例如,如果您的代码在此处:
\\full\path\to\code\VTK\vtkVolumeView.class
然后使用:
javaaddpath('\\full\path\to\code')
我仍然怀疑你的* .jar路径。添加jar文件时,通常应该使用绝对路径。尝试添加which('JavaOCT.jar')
你是如何制作jar档案的?它是否包含包声明隐含的相应目录结构?