Путь к классам в манифесте JAR?

Я пытаюсь разработать плагин для приложения FOSS, написанного кем-то другим. Все, что мне нужно сделать, это взять один написанный мной класс, упаковать его в файл JAR и скопировать файл JAR в каталог в уже существующей установке приложения.
Когда приложение видит мой файл JAR , он должен загружаться при запуске. Проблема в том, что он не может загрузить мой файл JAR.

Согласно их документам, моему манифесту может потребоваться указание CLASSPATH.

Моя файловая структура JAR проста: MyJarFile.jar / MyClass.java

Это буквально просто файл JAR с единственным файлом класса JAVA внутри.

Я новичок в этом, и все примеры файлов манифеста, которые я вижу в Google, похоже, ссылаются на другие файлы JAR.

Мне вообще нужно иметь КЛАСС в манифесте?

Если да, то как мне сослаться на MyClass.java?

Я использую IntelliJ и Maven (впервые).

Спасибо.


person Mattzees    schedule 30.10.2017    source источник
comment
Это другой вопрос, потому что я спрашиваю, нужно ли мне включать путь к классам в файл JAR только с одним классом. Другие вопросы, которые я вижу, не касаются самореферентных манифестов. Они спрашивают, как обращаться к другим файлам JAR. При этом я решил проблему.   -  person Mattzees    schedule 30.10.2017


Ответы (2)


Ознакомьтесь со статьей «Установка точки входа для приложения» в java-документации: https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

Вам нужно добавить строку в манифест, например «Main-Class: MyClass», если вы еще этого не сделали, чтобы запустить jar.

Вам нужно ссылаться на классы из другого JAR из вашего JAR? Если это так, вам нужно будет добавить в путь к классам JAR. См. https://docs.oracle.com/javase/tutorial/deployment/jar/downman.html, чтобы узнать, как это сделать.

В общем, я бы посоветовал прочитать информацию о java-документах по JAR-файлам https://docs.oracle.com/javase/tutorial/deployment/jar/index.html

Если после прочтения вам все еще нужна помощь, пожалуйста, более подробно объясните свой конкретный вариант использования, например поделиться актуальным кодом или сообщениями об ошибках

person jason    schedule 30.10.2017
comment
Спасибо за ответы. Я не очень разбираюсь в IntelliJ и Maven. Оказывается, мне пришлось создать новый модуль внутри проекта и вручную добавить вывод компиляции модуля в мой JAR-файл. Это было больно, но спасибо, что помог мне. - person Mattzees; 30.10.2017

Попробуйте это: нажмите «Файл» -> «Структура проекта» -> «Артефакты» -> щелкните правой кнопкой мыши файл jar и выберите «Поместить в выходной корень».

person phuong_buon    schedule 30.10.2017