我正在尝试编译并执行一个使用JTidy的java程序。我已经设法使用以下命令编译程序:
javac -classpath jtidy-r938.jar @sourcefile
这似乎工作得很好。但是,当我尝试使用以下命令运行程序时(Top是包含程序主要部分的类的名称):
java -classpath jtidy-r938.jar Top
我收到此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: Top
Caused by: java.lang.ClassNotFoundException: Top
...
Could not find the main class: Top. Program will exit.
这很可能是一个非常愚蠢的问题,有一个简单的解决方案,但它让我疯了。请帮忙!!
答案 0 :(得分:5)
您是否在此处使用班级Top
的完全限定名称,即您的班级Top
无包装?如果没有,您需要提供上述命令的完全限定类名才能工作。确保您还在类路径中添加了其他JAR依赖项,方法是将它们与;
或:
分开,具体取决于您的目标平台。
编辑:另外,如下所述,如果您的类依赖项不仅仅在JAR中,还包括.
个文件,请确保在类路径中还包含.class
(或适当的位置)文件系统。
答案 1 :(得分:1)
您正在移除路径“。”设置它时来自类路径的(当前目录)。
尝试java -classpath .;jtidy-r938.jar Top
。
这样它应该可以找到你的班级。