Класс Java не найден - PullRequest
       23

Класс Java не найден

5 голосов
/ 12 мая 2011

Я пытаюсь запустить программу Java из файла JAR. Java не может найти поддерживающий класс marc4j. Что я делаю неправильно. Вот подробности

В моем текущем состоянии непосредственно MarcTry.jar, который имеет мой основной класс. Существует также marc4j.jar, в котором отсутствует класс:

org/marc4j/MarcReader

Например:

java -jar MarcTry.jar Исключение в потоке "main" java.lang.NoClassDefFoundError: org / marc4j / MarcReader Вызывается: java.lang.ClassNotFoundException: org.marc4j.MarcReader на java.net.URLClassLoader $ 1.run (URLClassLoader.java:202) at java.security.AccessController.doPrivileged (собственный метод) в java.net.URLClassLoader.findClass (URLClassLoader.java:190) в java.lang.ClassLoader.loadClass (ClassLoader.java:307) at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) в java.lang.ClassLoader.loadClass (ClassLoader.java:248) Не удалось найти основной класс: marctry.Main. Программа закроется.

Я пробовал

java -jar MarcTry.jar -classpath marc4j.jar

с полностью указанным путем и без marc4j.jar.

Любые идеи приветствуются.

Ответы [ 2 ]

4 голосов
/ 12 мая 2011

Путь к классу игнорируется, когда вы используете ключ "-jar".Укажите оба jar-файла с помощью «-classpath» и выполните основной класс с полным именем.

Например, java -cp MarcTry.jar; marc4j.jar com.domain.MainClass

.. или добавить marc4j.jar к записи пути к классам в файле манифеста MarcTry.jar

Вы можете прочитать о добавлении jar-файлов в путь к классам файла манифеста здесь: Добавление классов в путь к классам JAR-файла

1 голос
/ 12 мая 2011
java -cp <complete path for your supporting jar>;<your jar which you want to run>

(для безопасности положите обе банки в одну папку)

...