まず最初に、このような長い投稿を読んでくださった皆様に、事前に感謝したいと思います。本当にありがとうございました。
問題は、私が大学で取り組んでいるプロジェクトのために、Matlab と Java を「接続」する方法についていくつかの研究を行ってきたことです。最適なオプションは Matlab Builder JA を使用することであると判断しましたが、これには多くの問題があります。
チュートリアル (以下のビデオのリンク) に記載されている手順を順を追って実行しますが、コンパイル エラーが何度も発生し、それらを修正する方法が本当にわかりません。makeSqr(n)
このチュートリアルでは、n × n 正方行列を返す関数を含むクラス (MLTestClass) を含む MATLAB ("com.demo") を使用して Java パッケージ (demo.jar) を作成します。次に、Eclipse に移動し、ライブラリ javabuilder.jar と demo.jar の両方をプロジェクトに追加してから、次のクラスを作成します。
public class Driver {
public static void main (String[] args) {
MLTestClass x = null;
Object result [] = null;
try {
x = new MLTestClass ();
result = x.makeSqr (1, 5);
System.out.println (result [0]);
} catch (MWException e) {
e.printStackTrace();
}
}
}
もちろん、com.demo.* と com.mathworks.toolbox.javabuilder.* をインポートします。
コンソールに表示されるエラーは次のとおりです。
スレッド「メイン」での例外 java.lang.ExceptionInInitializerError com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getProxyLibraryDir (MCRConfiguration.java:163) で com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.get(MCRConfiguration.java:77) で com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$MCRRoot.<clinit>(MCRConfiguration.java:87) で com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getMCRRoot(MCRConfiguration.java:92) で com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ModuleDir.<clinit>(MCRConfiguration.java:66) で com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getModuleDir(MCRConfiguration.java:71) で com.mathworks.toolbox.javabuilder.internal.MWMCR.<clinit>(MWMCR.java:1573) com.demo.DemoMCRFactory.(DemoMCRFactory.java:122) で com.demo.MLTestClass.(MLTestClass.java:63) で Driver.main(Driver.java:12) で 原因: java.lang.NullPointerException com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.get(MCRConfiguration.java:143) で com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.<clinit>(MCRConfiguration.java:158) で ... 10以上
念のため、リンク チュートリアル (ビデオです): http://www.mathworks.nl/products/javabuilder/description2.html
問題が何であるか誰にも考えがありますか? NullPointerExceptionについて何か書いてあるのですが、MATLABで作ったクラスがコンストラクタを提供しているので解決方法がわかりません。MCR のインストールに問題はありませんでした。ちなみに、私は MacOS を持っていますが、それが問題の原因でないことを願っています :)。
繰り返しますが、長い投稿で申し訳ありませんが、お時間をいただきありがとうございます。
ベントール。