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

gir*_*roy 0 java javac

我正在尝试编译并执行一个使用JTidy的java程序.我已经设法使用以下命令编译程序:

javac -classpath jtidy-r938.jar @sourcefile
Run Code Online (Sandbox Code Playgroud)

这似乎工作得很好.但是,当我尝试使用以下命令运行程序时(Top是包含程序主要部分的类的名称):

java -classpath jtidy-r938.jar Top
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: Top
Caused by: java.lang.ClassNotFoundException: Top
...
Could not find the main class: Top. Program will exit.
Run Code Online (Sandbox Code Playgroud)

对于一个简单的解决方案来说,这很可能是一个非常愚蠢的问题,但这让我感到疯狂.请帮忙!!

San*_*rma 5

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

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