2011-09-18 68 views
0

我想编译并执行一个使用JTidy的java程序。我设法使用以下命令编译程序:编译并执行一个jar程序包的java程序

javac -classpath jtidy-r938.jar @sourcefile 

这似乎工作得很好。然而,当我尝试运行使用下面的命令程序(顶部是类的包含该程序的主要部分的名称):

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. 

这很可能是一个简单的解决方案非常愚蠢的问题,但它令我疯狂。请帮忙!!

回答

1

您正在移除路径“。”。 (当前目录),当你设置它的时候。

尝试java -classpath .;jtidy-r938.jar Top

这样它应该能够找到你的班级。

+0

你先生,我的英雄! – giroy

5

您在这里使用类Top的完全限定名称,即您的类Top无包装?如果不是,则需要提供上述命令的全限定类名称才能工作。确保您还将类别路径中的其他JAR依赖项与;:分开,具体取决于您的目标平台。

编辑:此外,如下所述,请确保您的类路径中还包含.(或适当的位置),如果您的类依赖关系不仅位于JAR中,还位于文件系统上的.class文件中。