簡體   English   中英

為什么我不能在MATLAB中運行此Java foo.class文件

[英]Why I cannot run this java foo.class file in MATLAB

我已經編譯了以下java文件,並將文件路徑添加到了classpath中。 但是在調用該類后,它會顯示一些錯誤。 由於我是Java新手,請幫助我。

MyQueue2.java

import java.util.PriorityQueue;
import java.util.*;

public class MyQueue2 {
  Comparator<Double> c;
  PriorityQueue<Double> PQ;

  public MyQueue2() {
    c = new Comparator<Double>(){
            public int compare(Double o1, Double o2){
              if(o2 > o1) {
                return -1;
              } else if(o1 > o2) {
                return 1;
              } else {
                return 0;
              }
            }
        };
    PQ = new PriorityQueue<Double>(1000,c);
  }

  public void addElement(double d) {
    PQ.add(d);
  }

  public double removeElement() {
    return(PQ.remove());
  }
}

我在MATLAB中的命令:

import java.util.PriorityQueue;
import java.util.*;
import MyQueue2;
methods('MyQueue2') %

Methods for class MyQueue2:

MyQueue2       equals         hashCode       notifyAll      toString       
addElement     getClass       notify         removeElement  wait    

a = MyQueue2

Java exception occurred:
java.lang.NoClassDefFoundError: MyQueue2$1

    at MyQueue2.<init>(MyQueue2.java:9)

Caused by: java.lang.ClassNotFoundException: MyQueue2$1

    at java.net.URLClassLoader$1.run(Unknown Source)

    at java.security.AccessController.doPrivileged(Native Method)

    at java.net.URLClassLoader.findClass(Unknown Source)

    at com.mathworks.jmi.CustomURLClassLoader.findClass(ClassLoaderManager.java:760)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at java.lang.ClassLoader.loadClassInternal(Unknown Source)

    ... 1 more

b = MyQueue2    % again

Java exception occurred:
java.lang.NoClassDefFoundError: MyQueue2$1

    at MyQueue2.<init>(MyQueue2.java:9)

請幫我解決問題。

編譯MyQueue2.java之后,應該獲得2個類文件MyQueue2.class和MyQueue2 $ 1.class-這是為Comparator生成的匿名類,您是否將它們全部都放在了類路徑中? 我猜你忘了這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM