как использовать одну банку, которая зависит от другой банки - PullRequest
0 голосов
/ 15 декабря 2009

предположим, что в моем приложении "MyClass" я хочу использовать класс A в jar1, а некоторая часть класса A зависит от некоторого класса B в jar2. Если я добавлю jar1 и jar2 на мой путь к классу и запусту MyClass, он все равно будет жаловаться, что класс B. не найден.

Может кто-нибудь сказать мне, как решить эту проблему?

Большое спасибо.

Ответы [ 4 ]

3 голосов
/ 15 декабря 2009

Переменная окружения %CLASSPATH% равна , игнорируется при использовании команды java с аргументом -jar. Укажите его, используя аргумент -classpath или его сокращение -cp. В качестве альтернативы вы также можете указать его в записи class-path файла MANIFEST.MF исполняемого файла JAR.

0 голосов
/ 15 декабря 2009

Как уже упоминалось в других ответах, указание имени необходимого jar-файла в файле MANIFEST.MF вызываемого вами jar-файла - один из способов решения вашей проблемы.

Во время создания файла jar (тот, который вы вызываете первым) вы можете указать файл манифеста, который содержит эту деталь, чтобы он связывался с вашим файлом jar.

В руководстве Java есть раздел о том, как указать файл манифеста при создании jar.

Если вы используете Ant в качестве инструмента сборки, вы можете использовать задачу Ant Manifest для создания файла манифеста. Вы можете использовать файл Manifest, созданный таким образом, в задаче Ant, которая создает ваш jar.

Также проверьте эту ссылку , которая предоставляет более подробную информацию о файле манифеста.

0 голосов
/ 15 декабря 2009

Я думаю, что включение jar2.jar в jar1 MANIFEST.MF, вероятно, будет работать, если они находятся в одном каталоге.

0 голосов
/ 15 декабря 2009

Я никогда не сталкивался с этой проблемой, но вы пытались поместить jar2 перед jar1 в порядке пути к классам? Я думаю, что более вероятно, что jar2 просто не включен должным образом. Вы можете опубликовать настройку classpath?

Кроме того, вы можете открыть jar2 (это просто zip-файл) и убедиться, что класс, который, по вашему мнению, находится там, действительно существует.

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