нет главного атрибута манифеста в банке, но он есть - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь создать файл 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

...