这里提到我有同样的问题classpath中涉及进口:exception-in-thread-main-java-lang-noclassdeffounderror-wrong-name问题从一个jar文件
我与日食执行没有问题,但与终端我有一个NoClassDef。上升一个文件夹并执行java <package-name>.<class-name>
完美运行。
我简单的代码如下:
package temp;
import org.fusesource.jansi.Ansi;
public class Test {
public static void main(String[] args) {
System.out.println("I'm going to blow on the next line!");
System.out.println(Ansi.ansi().eraseScreen().render("@|bold,red Hello|@ @|green World|@"));
}
}
我知道这个代码运行,因为我从Jansi's author page复制它。这是一个在Windows终端上以彩色打印的库。 运行此课程需要做什么?非常感谢帮助。
[UDPATE:SOLUTION]
有人劝我创造,我想测试,然后运行该JAR的应用程序的罐子。所以我创建了jar包“jprinter”,它包含我所有的文件(不是我使用的外部jar)和测试类的主文件。从那以后,我可以在任何文件夹中执行
java -cp ".\lib\jprinter-1.15.jar;.\lib\*" print.test.Test
其中lib
是我等用坛子的文件夹; print.test
是包含主要方法的类Test
的包。
[过时:] 我试图通过运行java .:..\lib\jansi-1.4.jar temp.Test
这给了我下面的输出中执行:
I'm going to blow on the next line!
Exception in thread "main" java.lang.NoClassDefFoundError: org/fusesource/jansi/Ansi
at temp.Test.main(Test.java:13)
而且我也试图通过运行java ".:..\lib\jansi-1.4.jar" temp.Test
或java ".;..\lib\jansi-1.4.jar" temp.Test
这给了我下面的输出中执行:
Exception in thread "main" java.lang.NoClassDefFoundError: \lib\jansi-1.4\jar
Caused by: java.lang.ClassNotFoundException: .:..\lib\jansi-1.4.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
是的,你可以做到这一点。请注意,不应该使用<>,它只是强调您应该将其替换为实际jar文件的路径。我想这应该是这样的:'java -cp ../lib/jansi.jar temp.Test' – wjans 2011-06-09 11:44:32
如果你有两个jar,一个在lib中,一个在bin中,调用{{java -cp。 。\ lib \ jansi.jar -jar yourjar.jar}}从bin中运行。虽然被wjans舀了过去。 :) – 2011-06-09 11:45:51
@ wjans:是的,我知道<>:P @Urs:Thx为两个罐子的尖端!我忘了'..' – dialex 2011-06-09 12:41:58