我在执行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编译并在不同的机器上使用脚本执行。
有关如何运行已编译文件的任何建议吗?
答案 0 :(得分:1)
您需要添加已编译文件的类路径,如下所示:
java -cp weka.jar;. RunMining
这假设您的文件是在您的javac命令建议的根目录中编译的。