it-swarm.com.ru

Как настроить основной класс в файле манифеста в банке, созданной проектом NetBeans

У меня следующая проблема. У меня есть проект Java в моем NetBeans IDE 6.8. Когда я компилирую его и он создает файл .jar, содержащий все возможное, META-INF не подходит. Он не содержит класс для выполнения - с методом main (). 

Когда я нажимаю кнопку Run внутри IDE, все работает. Настройки проекта также установлены правильно - указание на класс в моем проекте.

Я попытался добавить папку META-INF с файлом манифеста, но мне не удалось.

Есть ли способ сделать это вручную в NetBeans, потому что я обнаружил, что если я добавлю отсутствующий класс Main в манифест, все будет работать.

(Полагаю, я столкнулся с какой-то ошибкой ...)

//edit: В результате я хочу, чтобы файл jar, созданный при сборке NetBeans, выполнялся командой:

Цитата из Sun Documentation :

Если в файле манифеста задан Main-Class, вы можете запустить приложение из командной строки: Java -jar app.jar

18
Leni Kirilov

Я собираюсь сделать резюме предлагаемых решений и того, которое мне помогло!

После прочтения этого сообщения об ошибке: ошибка в способе, которым NetBeans 6.8 создает банку для проекта библиотеки Java.

  1. Создайте файл manifest.mf в корне моего проекта

  2. Редактировать manifest.mf. Мой выглядел примерно так:

    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.7.1
    Created-By: 16.3-b01 (Sun Microsystems Inc.)
    Main-Class: com.example.MainClass
    Class-Path: lib/lib1.jar lib/lib2.jar
    
  3. Открыть файл /nbproject/project.properties

  4. Добавить строку

    manifest.file=manifest.mf

  5. Clean + Сборка проекта

Теперь .jar успешно собран.

Большое спасибо vkraemer

27
Leni Kirilov

Похоже, вы столкнулись с ошибкой в том, как NetBeans 6.8 создает банку для проекта библиотеки Java

Проблема подразумевает, что существует обходной путь.

Мне не удалось проверить это с NB 6.8 и/или NetBeans 6.9-dev ...

Вы можете зарегистрироваться на веб-сайте/трекере проблем NetBeans.org, обновить проблему и добавить свой «голос».

4
vkraemer

Это просто. 

  • Щелкните правой кнопкой мыши на проекте
  • Перейти к Свойства
  • Перейти к Выполнить в Категории Дерево
  • Установите Главный класс на правой боковой панели.
  • Постройте проект

Это оно. Надеюсь это поможет.

3
Ravindra Gullapalli

В 7.3 просто включите Свойства/Сборка/Пакет/Копирование зависимых библиотек, и основной класс будет добавлен в манифест при сборке в зависимости от выбранной цели.

1
Samuel Ventura

Не стесняйтесь, но загляните в свои файлы проекта после того, как вы впервые создали свой проект. Найдите файл манифеста и выберите открыть с помощью блокнота.

Добавьте строку:

Main-Class: package.myMainClassName

Где package - это ваш пакет, а myClassName - это класс с методом main(String[] args).

0
madalitso Misomali

Добавление manifest.file = manifest.mf в project.properties и создание файла manifest.mf в каталоге проекта прекрасно работает в NB 6.9 и также должно работать в NB 6.8.

0
Tomas Zezula

Я читаю, читаю и читаю, чтобы выяснить, почему я получаю ошибку «класс не найден», оказывается, что в manifest.mf была ошибка в строке: 

Main-Class: com.example.MainClass

Я исправил ошибку, перейдя в Свойства проекта диалоговое окно (щелкните правой кнопкой мыши Файлы проекта ), затем Выполнить и Основной класс и исправил все, что Netbeans решил разместить здесь. Netbean вставил имя проекта вместо имени класса. Понятия не имею почему. Наверное, опьянен от муратины ...

0
githeko

Это проблема все еще на 7.2.1. Создайте библиотеку, потому что вы не знаете, что она будет делать, если вы сделаете это приложением, и вы облажались.

Нашел, как это исправить, хотя. Отредактируйте nbproject/project.properties, измените следующую строку на false, как показано:

mkdist.disabled=false

После этого вы можете изменить основной класс в свойствах, и это будет отражено в манифесте.

0
Jeff Palmer

Реальная проблема заключается в том, как Netbeans JARs свои проекты. «Class-Path:» в файле Manifest не нужен при фактической публикации вашей программы для использования другими. Если в Netbeans добавлена ​​внешняя библиотека, она действует как пакет. Я предлагаю вам использовать такую ​​программу, как WINRAR, для просмотра файлов внутри jar и добавлять свои библиотеки в виде пакетов непосредственно в файл jar.

Как должна выглядеть внутренняя часть jar-файла:

MyProject.jar

    Manifest.MF
         Main-Class: mainClassFolder.Mainclass

    mainClassFolder
         Mainclass.class

    packageFolder
         IamUselessWithoutMain.class
0
user1959349