使用jar库包编译和执行java程序

时间:2011-09-18 07:54:41

标签: java javac

我正在尝试编译并执行一个使用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.

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

2 个答案:

答案 0 :(得分:5)

您是否在此处使用班级Top的完全限定名称,即您的班级Top无包装?如果没有,您需要提供上述命令的完全限定类名才能工作。确保您还在类路径中添加了其他JAR依赖项,方法是将它们与;:分开,具体取决于您的目标平台。

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

答案 1 :(得分:1)

您正在移除路径“。”设置它时来自类路径的(当前目录)。

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

这样它应该可以找到你的班级。