Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что я делаю не так?

Neon mode Гуру (3119), на голосовании 1 год назад
Ввожу эту команду:
 java -cp D:/mylib.jar -jar D:/main.jar 
И вылазит такая фигня:
 Exception in thread "main" java.lang.NoClassDefFoundError: MyLibrary
at Main.main(Main.java:3)
Caused by: java.lang.ClassNotFoundException: MyLibrary
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
В mylib.jar есть класс MyLibrary.class, исходник:
 public class MyLibrary {
public static void print() {
System.out.println("Printed!");
}
}
А в main.jar сами знаете, это главный класс:
 public class Main {
public static void main(String[] args) {
MyLibrary.print();
}
}


Что нужно делать, чтобы вывелось "Printed!", а не эти орущие строчки исключения?
Голосование за лучший ответ
Sergio 2.1 Оракул (67319) 1 год назад
Опция -jar игнорирует опцию -cp. Вместо этого, вы можете указать путь к библиотеке в манифесте файла main.jar или запустить программу, указав главный класс и путь к библиотекам в опции -cp. Например, если главный класс называется Main, вы можете запустить программу с помощью следующей команды:
 java -cp D:/mylib.jar;D:/main.jar Main 
Neon modeГуру (3119) 1 год назад
Бл красава
Похожие вопросы