1

MATLAB コードに次の行があります。

javaaddpath('C:\Users\localadmin\SkyDrive\IdeaProjects\DrawModels\out\artifacts\DrawModels_jar\DrawModels.jar')
javaaddpath('C:\Users\localadmin\SkyDrive\IdeaProjects\DrawModels\out\artifacts\DrawModels_jar\itextpdf-5.4.1.jar')

次に、ファイルで定義されたいくつかの JAVA オブジェクトをインスタンス化します。

JAR ファイルを .m ファイルがある場所にコピーし、代わりに次のように記述します (つまり、絶対パスではなく相対パスを使用したい)。

javaaddpath('DrawModels.jar')
javaaddpath('itextpdf-5.4.1.jar')

ただし、MATLAB パスはjavaaddpathに適用されないように見えるため、JAR ファイルは読み込まれません。

JAR ファイルの相対パスのアドレス指定をどのように達成するかについてのアイデアはありますか?

これの背景は、MATLAB コードを Windows と Linux の両方で、つまり、展開された場所ならどこでも実行できるようにしたいということです。ユーザーは選択した任意のフォルダーに解凍できるため、ソースにハードコードされたパスは必要ありません。

どんな助けでも感謝します。

4

1 に答える 1

1

mfilename実行中の M ファイルのパスを見つけるために使用できます。これは、次のように JAR ファイル名と連結できます。

javaaddpath(fullfile(fileparts(mfilename('fullpath')),'DrawModels.jar'))

これは、Java クラスを MATLAB に追加する M ファイルに含まれている必要があります。

于 2013-10-08T17:43:03.333 に答える