Как превратить основную банку в оправданную? - PullRequest
2 голосов
/ 20 января 2012

Привет всем,

У меня есть около 10 банок, и когда я запускаю свою программу, я вызываю следующее:

java -Xmx1024m -cp a.jar;b.jar;c.jar;whatever.jar -Dfile.encoding=UTF-8 [package][class]

Я хочу сделать это как исполняемый файл. Я подумал, что когда я unjar (это звучит странно, но я использую команду java - не использую обычную zip-программу), jar-файл, содержащий [package][class], обновляет manifest.mf и заново его редактирует К сожалению, это не сработало.

Могу ли я сделать его исполняемым jar или я должен разархивировать его и суммировать все?

Ответы [ 2 ]

1 голос
/ 20 января 2012

Вам просто нужна эта строка в файле манифеста

Main-Class: my.package.Main

Затем выполните команду jar с флагом m и присвойте ей имя файла манифеста:

jar cmf manifest main.jar *.class

К сожалению, банки не могут содержать другие банки.Дайте банке, содержащей вашу точку входа, Main-Class, а затем установите путь к классу так, чтобы остальные 9 банок были доступны.

0 голосов
/ 20 января 2012

Jar - это коллекция файлов.Чтобы сделать jar исполняемым, самое главное, чтобы он содержал класс с методом main () .Таким образом, вы можете сделать исполняемый файл jar, только если он содержит файл .class, который имеет метод main.Этот класс будет выглядеть следующим образом.

public class AClass
{
    public static void main(String[] args)
    {
        ...
    }jar 
       ...
}

Тогда и только тогда вы сможете сделать исполняемый файл jar.

Если присутствует класс метода main ().Затем, чтобы сделать исполняемый файл jar, сделайте это.

  1. Извлеките jar
  2. В файле манифеста добавьте эту строку Main-Class:AClass и не забудьте нажать enter после этой строки,перейдите по этой ссылке
  3. Пересмотрите файлы классов.Теперь у вас есть исполняемый файл jar

Чтобы выполнить файл jar (предположим, вы сделали исполняемый файл .jar), затем запустите java -jar a.jar для запуска файла jar.

Второечто команда, которую вы разместили в вопросе, не требует выполнения этих jar-файлов.Когда вы используете -cp, тогда параметры (то есть a.jar и т.д ..) в основном являются библиотеками или, другими словами, когда java будет искать файл класса, чтобы найти определение класса илифункция или что-то в этом роде, она будет заглядывать внутрь этих jars, если то, что она ищет, не является частью стандартной библиотеки Java.

...