2015-03-14 4 views
0

Скажем, например, файл manifest.txt файла сохраняется в родительском каталоге моего каталога bin, где по классам сохраняется. Теперь я хочу иметь возможность ссылаться на мой основной класс в заголовке манифеста, чтобы я мог напрямую создать свой JAR-файл из родительского каталога. Так, например: мой manifest.txt сохраняется в директории проекта под названием так:Настройка пути для основного класса в файле манифеста

-project (родительский каталог) содержит: бин (это содержит мои классы, которые необходимы для запуска приложения) ЦСИ (папка) и manifest.txt

Таким образом, в идеальном мире я бы себе представить мое manifest.txt выглядеть примерно так: Main-Class: бен/MainClass

, но по какой-то причине это Безразлично» т работы. Есть идеи?

ответ

0

Атрибут Main-Class должен содержать полное имя основного класса. Это не имеет никакого отношения к тому, как выкладывается ваш проект. Если класс называется Foo и находится в пакете com.bar, основным классом является com.bar.Foo.

Если класс Foo находится в пакете по умолчанию, что является плохой практикой, то его полное имя - Foo. Но первое, что вы должны сделать в этом случае, - это перемещение класса в пакет.

Когда вы выполняете java -jar path/to/myjar.jar, из любой директории java проверит банку, прочитает файл манифеста, ищет Main-Class и загрузит его из фляги.

+0

Скажите, что я хочу сохранить его в пакете по умолчанию, и я хочу получить к нему доступ (т. Е. Установить его как мой основной класс в манифесте) из родительского каталога. Не существует способа установить путь, который ведет к нему? Так что манифест теоретически может выглядеть примерно так: Main-Class: bin/foo –

+0

Почему вас интересуют каталоги? Класс находится внутри jar, и вы говорите java, благодаря манифесту, который из классов внутри ar является основным. Если вы делаете что-то из bin, c: \, или даже другой компьютер, на котором запущена другая ОС, не имеет значения: файл jar является файлом jar. –