Создать 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
Авторизуйтесь для добавления комментариев!