4

matlabからjavaを使用しようとしたときに問題が発生しました。MathWork.comのチュートリアルを数回読み、matlabとの互換性を保つためにJDK1.6を再インストールしました。しかし、私の仕事の後、それはまだ機能しません...

classpath.txtの内容は次のとおりです。

    C:\Program Files\MATLAB\R2010a\java\jarext\xstream.jar                                  
    C:\Program Files\MATLAB\R2010a\toolbox\javabuilder\jar\win64   \javabuilder.jar            

    DYNAMIC JAVA PATH

C:\Users\Gao\Desktop\connected_components_labeling

明らかに、ディレクトリはファイルに含まれています。connected_component_labelingは、私のディスク上の単なるフォルダーです。connected_components_labelingで使用したいクラスは次のとおりです。Disjoint_Set.classとNode.classはconnected_components_labelingフォルダーにあります。

私は試した:

x =  Disjoint_Set();

また

x = connected_components_labeling.Disjoint_Set();

それらのどれも動作しません。matlabから得た唯一のフィードバックは次のとおりです。

??? Undefined variable "connected_components_labeling" or class
"connected_components_labeling.Disjoint_Set".

私はかなりイライラしています。誰か助けてもらえますか?私はそれを感謝します。トンありがとう!

4

1 に答える 1

4

MATLABと互換性のあるJRE/JDKを使用してJavaファイルをコンパイルしていることを確認してください。私の知る限り、MATLABはJava 7で正しく動作しないため、当面はJava6を使用してください...

MATLABに影響を与える環境変数がいくつかあります。私の場合、私は次のことをしています。

JAVA_HOME = C:\Program Files\Java\jdk1.6.0_32
MATLAB_JAVA = C:\Program Files\Java\jre6
PATH = ...;C:\Program Files\Java\jdk1.6.0_32\bin

これが私が行った簡単なテストです:

C:\ work \ Student.java

public class Student {
    private String name;
    public Student(String str) {
        name = str;
    }
    public void setName(String str) {
        name = str;
    }
    public String getName() {
        return name;
    }

    public static void main(String args[]) {
        Student s = new Student("amro");
        s.setName("unknown");
        System.out.println("Hello " + s.getName());
    }
}

コンパイルします:(javac Student.java出力は同じディレクトリに配置されますc:\work\Student.class)。今私はMATLABからそれをテストします:

javaaddpath('C:\work')

javaMethod('main','Student','')

s = Student('me')
char( s.getName() )

私は得る:

Hello unknown

s =
Student@8d6877

ans =
me
于 2012-06-15T18:18:37.110 に答える