Netbeans应用程序中的Jar文件和CLASSPATH(Matlabcontrol)

时间:2011-12-22 17:24:44

标签: netbeans jar classpath

我正在尝试使用Netbeans应用程序中的MatlabCotrol(http://code.google.com/p/matlabcontrol/)。

为了从Java应用程序(例如没有Netbeans模块)使用Matlabcontrol,唯一需要的是将matlabcontrol-4.0.jar文件添加到项目中,一切正常。

当我尝试从Netbeans应用程序执行相同操作时,我使用"库包装器模块"来包含jar文件,原则上应该允许将jar文件用作Netbeans模块。但是,Matlabcontrol并不喜欢这种方式。项目编译正确,表明包装器模块确实暴露了matlabcontrol jar文件中的类定义。但是,程序运行时出现以下异常:

java.lang.NullPointerException 
at java.io.File.<init>(File.java:222) 
at matlabcontrol.Configuration.getSupportCodeLocation(Configuration.java:227) 
at matlabcontrol.RemoteMatlabProxyFactory.createProcess(RemoteMatlabProxyFactory.java:278) 
at matlabcontrol.RemoteMatlabProxyFactory.requestProxy(RemoteMatlabProxyFactory.java:116) 
at matlabcontrol.RemoteMatlabProxyFactory.getProxy(RemoteMatlabProxyFactory.java:134) 
at matlabcontrol.MatlabProxyFactory.getProxy(MatlabProxyFactory.java:81)

问题似乎是jar文件中的matlabcontrol代码,需要知道代码的位置。在Java应用程序的情况下,jar文件位于Matlabcontrol似乎期望的特定目录中。在netbeans内部,情况并非如此。错误发生在这些代码行中:

URL url = Configuration.class.getProtectionDomain().getCodeSource().getLocation(); 
File file = new File(url.toURI().getPath()).getCanonicalFile();

异常由File构造函数触发,因为Configuration类函数返回null url。

有没有人知道如何解决这个问题?

无论如何,感谢您阅读我的问题!

0 个答案:

没有答案