javaaddpathコマンドを使用して、外部jar(自分で開発)をmatlabプロジェクト(自分で開発)に使用しています。
プログラミング環境をMatlabr2011aからr2012bに、jdkを1.6.0_29から1.7.0_09に、ウィンドウをXPからSevenに更新しました。
まず、jarファイルを再コンパイルしておらず、プロジェクト全体がまだ機能しています(バグなしで実行されています)。
しかし今、私は自分のjarファイルを再コンパイルしようとしています。私はそれに関していくつかの問題を抱えていましたが、それは解決しました(javac @ <opiton_file>とencodingを参照)。しかし、jarツールが再構築されたため、matlabで使用できません... Matlabはエラーを表示します:
Undefined variable "optimizer" or function "optimizer.Gui".
ここで、optimizerはパッケージです(つまり、jarファイル内のディレクトリ、Guiクラスを含むディレクトリ)。
要約すると、私はコードを使用しています(最後の行はJFrameをポップアップする必要があります):
javaaddpath('the full path of my jar file.jar');
optimizer.Gui;
コンパイルされたバージョンのjarファイルを更新しなくても、機能しています。新しいバージョン(同じソースコード)では、matlabはエラーを出力します。
jarファイルのルートにMainクラス(main関数を含む)があり、このMainクラスをmainクラスとして指定するmanitifestがあります。このメインクラスは、jarファイルへのすべての機能が機能していることを確認するためにいくつかのテストを行います。したがって、java -jar my_jar_file.jarを実行して、すべてのテストに問題がないことを確認できます(テストの1つにoptimizer.Guiが表示されました)。
javacバージョンとmatlabの非互換性はありますか?ファイルのエンコードに問題があったからですか?...