Как запустить класс в файле JAR, который находится в пути к классу другого файла JAR - PullRequest
0 голосов
/ 25 октября 2010

У меня есть файл jar с именем "a.jar", в котором есть другой файл jar с именем "b.jar".

a.jar
 |
 |-- META-INF
 |     |
 |     |-- MANIFEST.MF
 |
 |-- b.jar
     |
     |- com/test/MainInB.class

"b.jar" имеет файл com / test / MainInB.class.(Класс MainInB просто распечатывает "hello world!")

"a.jar" имеет файл MANIFES.MF примерно так:

Manifest-version: 1.0
Main-Class: com.test.MainInB
Class-Path: b.jar

(файл манифеста заканчивается пустой новой строкой)


И я хотел бы запустить a.jar вот так, чтобы он выводил «Привет, мир!»

java -jar a.jar

Но я получил NoClassDefFoundError!

Пожалуйста, помогите!Разве это не разрешено?Или я что-то упустил?

R Джо

Ответы [ 2 ]

0 голосов
/ 01 июля 2014

У Java есть проблема: он не может читать jar-файлы изнутри файла jar.

Они рассмотрели это для будущего выпуска.Но не исправлено до сих пор см. BUG .

Вы должны сохранить их снова в lib

0 голосов
/ 25 октября 2010

На самом деле мой пример работает!

У меня просто проблема с моим проектом, в котором я использую maven-assembly-plugin для создания jar и MANIFEST.MF.

Что-то должно быть отключено в конфигурации или плагине.

Спасибо, ребята!

Джо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...