【问题标题】:java.lang.NoClassDefFoundError when using weka.jar file in my own java file在我自己的 java 文件中使用 weka.jar 文件时出现 java.lang.NoClassDefFoundError
【发布时间】:2014-05-03 11:32:19
【问题描述】:

我在执行我的 java 程序时遇到问题。代码放在文件RunMining.java 中,并包含多个import weka.[..] 行。 weka 库(weka.jar)放在同一个文件夹中。

我编译它:

$ javac -cp weka.jar RunMining.java

这会创建三个文件:RunMining.class, RunMining$1.class, RunMining$classifierType.class

当我运行它时:java -cp weka.jar RunMining 我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: RunMining
Caused by: java.lang.ClassNotFoundException: RunMining
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

我的 RunMining.java 文件只包含一个名为 RunMining 的类,其中包含 main 方法。我不希望将 weka.jar 文件添加到我的CLASSPATH,因为该文件将使用 makefile 编译并使用脚本在不同的机器上执行。 关于如何运行编译文件的任何建议?

【问题讨论】:

    标签: java classpath weka noclassdeffounderror


    【解决方案1】:

    您需要添加编译文件的类路径,如下所示:

    java -cp weka.jar;. RunMining
    

    这假设您的文件是在 javac 命令建议的根目录中编译的。

    【讨论】:

    • 谢谢。这对我有帮助。请注意,; 应该是 :,例如。 java -cp weka.jar:. RunMining假设RunMining.class文件在当前目录下。
    • 对,我假设你在哪里使用 windows。没看到你用的是shell。 : 对于 unix ;窗户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2012-08-05
    相关资源
    最近更新 更多