У меня возникла та же проблема, что и здесь: исключение-в-нити-main-java-lang-noclassdeffounderror-неправильное-имя
У меня не было проблем с запуском Eclipse, но с терминалом я получил 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|@") );
}
}
Я знаю, что этот код запускается, потому что я скопировал его со страницы автора Янси . Это библиотека для цветной печати на терминале Windows. Что мне нужно сделать, чтобы запустить этот класс? Помощь очень ценится.
[UDPATE: РЕШЕНИЕ]
Мне посоветовали создать банку приложения, которое я пытался протестировать, а затем запустить эту банку. Поэтому я создал jar "jprinter", содержащий все мои файлы (а не внешний jar, который я использовал) и тестовый класс с main. После этого я мог выполнить в любой папке
java -cp ".\lib\jprinter-1.15.jar;.\lib\*" print.test.Test
где lib
- папка с моими и другими используемыми банками; print.test
- это пакет класса Test
, который содержит метод main.
[устареть:]
Я попытался выполнить, запустив 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)