Сервер в кармане, или просто о сложном!

главная - Статьи - Java



Создать jar с использованием manifest-файла и без него

Дата обновления: 04.06.2024

Теги: java

Есть Java-класс HelloWorld в файле HelloWorld.java.

Нужно создать jar-файл.

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World");
    }
}

Вариант 1: указать имя класса по-умолчанию вручную

> javac HelloWorld.java
> jar cvfe myjar.jar HelloWorld *.class
> java -jar myjar.jar
Hello, World

 

Вариант 2: указать имя класса по-умолчанию с помощью manifest

создать файл манифеста manifest.mf:

Manifest-Version: 1.0
Main-Class: HelloWorld
 

> javac HelloWorld.java
> jar --create -f hello-world.jar -m manifest.mf *.class

либо

> javac HelloWorld.java
> jar cvfm hello-world.jar manifest.mf *.class

Порядок опций (cvfm) имеет значение. -c - create, -v - verbose, а вот -f и -m: если сначала -f, а потом -m, то сначала указывают имя создаваемого файла jar, а потом имя файла manifest.

И есть маааленькая тонкость: в файле manifest.mf после HelloWorld должен быть перевод строки. Иначе будет создаваться архив hello-world.jar, но в нем в файле META-INF\MANIFEST.MF не будет указания на класс HelloWorld! И запуск будет выдавать ошибку:

no main manifest attribute, in hello-world.jar


Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?