我编译了以下java文件,并将文件路径添加到类路径中。但在调用该类后,它显示出一些错误。因为我是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)
请帮我解决问题。
答案 0 :(得分:1)
在编译MyQueue2.java之后,你应该得到2个类文件MyQueue2.class和MyQueue2 $ 1.class - 这是为Comparator生成的匿名类,你把它们全部放在类路径中吗?我猜你忘了这个。