Я пытаюсь создать файл jar из одного java файла
package mypackage;
import static java.lang.System.out;
public class Test {
public static void main(String[] args) {
out.println("Running java app");
while(true) {
}
}
}
Я помещаю этот файл с именем Test.java
в папку с именем mypackage
. У меня также есть MANIFEST.MF
, который выглядит как ниже. Я поместил это в папку META-INF
.
Manifest-Version: 1.0
Main-Class: mypackage.Test
Затем я скомпилировал, используя javac mypackage/Test.java
. Затем создайте банку, используя jar cmvf META-INF/MANIFEST.MF test.jar mypackage/Test.class
. Это выводит
добавлено добавление манифеста: mypackage / Test.class (in = 471) (out =
335) (выкачано 28%)
Затем попробуйте запустить как java -jar test.jar
. Но это дает ошибку
без атрибута основного манифеста, в test.jar
Затем я проверяю банку, используя jar tvf test.jar
, и это выводит
0 Вт 18 фев 12:18:26 CST 2020 META-INF /
66 Вт 18 фев 12:18:26 CST 2020 META-INF / MANIFEST.MF
471 Вт 18 фев 12:15: 30 CST 2020 mypackage / Test.class
Манифест есть, но жалуется, что его нет. Я попытался поместить MANIFEST.MF
в базовый каталог без создания META-INF
, а также попытался поместить Test.java
в базовый каталог без пакета, но получил ту же ошибку. Может кто-нибудь помочь, пожалуйста?
Обновление
Я могу запустить его, не превращая его в банку с помощью этой команды java -cp /Users/liam/nr-test/ mypackage.Test
. Я думаю, что с банкой мне не нужно устанавливать classpath