我想開始使用java軟件weka的API。我寫了下面的代碼進行測試:如何用導入的類編譯java程序?
import weka.core.Instances;
import java.io.BufferedReader;
import java.io.FileReader;
public class hello_weka {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader("/home/aljoscha/Masterarbeit/weka_examples/iris.arff"));
Instances data = new Instances(reader);
reader.close();
// setting class attribute
data.setClassIndex(data.numAttributes() -1);
System.out.println(data);
System.exit(0);
}
}
它在我在Eclipse中執行它時正常工作。 但是我不能讓它在終端中運行。
我試圖在編譯期間提供.jar路徑,然後從編譯的類的目錄執行程序。
javac -cp /usr/share/java/weka.jar hello_weka.java
java hello_weka
這種方法是行不通的,我得到以下錯誤:
Exception in thread "main" java.lang.NoClassDefFoundError: weka/core/Instances at hello_weka.main(hello_weka.java:8) Caused by: java.lang.ClassNotFoundException: weka.core.Instances at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) ... 1 more
我在做什麼錯?
我想我只是做了一些完全愚蠢的東西,因爲我剛開始用Java編寫代碼。如果是這樣,請原諒我,並試圖告訴我,我可以做得更好。
編輯:
當我嘗試在回答我收到以下錯誤提出的事:
Exception in thread "main" java.lang.NoClassDefFoundError: hello_weka Caused by: java.lang.ClassNotFoundException: hello_weka at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) Could not find the main class: hello_weka. Program will exit.
當我這樣做時,我得到另一個錯誤。 (請參閱編輯的問題) – aldorado
您的類依賴關係存在一些問題。確保你已經在類路徑中提供了jar文件的正確路徑(-cp) –