2009-03-02 2 views
19

Я использую NetBeans 6.5 и по какой-то причине он не будет выпускать исполняемую банку «из коробки».Создание исполняемого банку в NetBeans

Я установил свой проект в качестве основного проекта, определил основной класс в меню свойств проекта «запустить», и он работает безупречно, когда я нажимаю F6 для его запуска.

Я посмотрел файл манифеста, и он действительно не определил основной класс, а также опустил зависимости библиотеки.



Я что-то не хватает? Есть ли способ (кроме изменения файла манифеста вручную) для создания исполняемых файлов jar?

EDIT: да, я попытался чистым и восстановить, и он произвел банку в DIST папки, все еще с тем же manifest.mf

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.1 
Created-By: 10.0-b23 (Sun Microsystems Inc.) 
+0

Нечетные. Довольно уверен, что NetBeans делает исполняемые банки по умолчанию. Когда вы запускаете проект, он даже указывается на выходе консоли для меня. У меня нет работы NetBeans, поэтому я не могу дважды проверить :( – willcodejavaforfood

+2

Файл manifest.mf в каталоге проекта не копируется в файл .jar. Атрибут основного класса и любые пути к библиотеке добавляются, когда вы «очищаете и построить проект » –

+0

Да, он делает исполняемые баночки по умолчанию. Попробуйте очистить и перестроить. –

ответ

0

Странно на самом деле, он должен сделать это из коробки, включая путь к классам.

Вы обновили предыдущую версию? При обновлении NB обновляет файлы проекта, но иногда эта миграция не выполняется хорошо, и всплывает такой сценарий. Просто закройте проект, переименуйте каталог nbproject в nbproject_old и выполните новый проект -> проект Java с существующими источниками. Снова установите основной класс и добавьте зависимости и повторите попытку.

0

Другим подходом является разработка, запуск модульных тестов и т. Д. В NetBeans, но затем использование сценария maven или ant для создания вашей «реальной» сборки. Похоже, что такие инструменты построения дают вам больше контроля над тем, как все построено, а также позволяет автоматизировать сборку.

Для мавена, вы можете добавлять записи в манифест легко, используя Maven плагин банку:

http://maven.apache.org/plugins/maven-jar-plugin/

0

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

/project_folder 
    build.xml 
    manifest.mf(edit here) 
    /dist 
    /src 
    /test 
    /build 
+1

Извините, но я попробовал, и NetBeans переопределил то, что я указываю в манифесте – Dani

1

Если вы очищаете и строите проект, он должен создать банку в каталоге «dist».

Он должен создать manifest.mf на верхнем уровне вашего каталога проектов.

1

На самом деле я столкнулся с этой страницей после того, как столкнулся с той же проблемой, я редактировал файл manifest.mf, но изменения не отображались в файле MANIFEST.MF. Я нашел вопрос, который у меня был, и думал, что передам информацию на всякий случай, если это будет актуально.

Что я делал неправильно, у меня не было проекта, над которым я работал, как основного проекта, поэтому, когда я редактировал правильный манифест, я составлял неправильный проект.

Так, я полагаю, что в короткой истории вы проверяли, есть ли у вас правильный проект, выбранный для файла manifest.mf, который вы редактируете?

1

Возможно, вы создали Проект Java с существующими источниками вместо Приложение Java?

У меня была схожая проблема и создание нового приложения Java, а затем вручную копирование файлов src решило проблему - все работало «из коробки».

1

У меня был опыт, что процесс сборки отличается от в зависимости от типа проекта.

Я полагаю, вы создали проект «Библиотека классов Java».

Так что просто создайте проект «Java Application», а затем слейте все классы.

Затем Netbeans будет не переопределить, а усилить"manifest.mf" в JAR.

Конечно, это глупая ошибка Netbeans. Конечно, после этого должно быть возможно добавить основные классы .

EDIT: См. Мой другой ответ. Это легче.

0

Лучшее решение:

Редактировать nbproject/project.properties и добавить запись:

manifest.file=manifest.mf 

manifest.mf должен находиться в корневом каталоге проекта и содержать только:

Manifest-Version: 1.0 
X-COMMENT: Main-Class will be added automatically by build 

Works , Проверено.

5

Попробуйте это:

  1. правой кнопкой мыши проект на панели "Проекты", выберите "Свойства"

  2. Нажмите на "Run" в новом окне.

  3. Отредактируйте поле «Основной класс:» (нажмите «Обзор»).

Таким образом вы выберете основной класс, который является точкой входа в ваше приложение, и манифест будет создан правильно.

4

очень просто, .jar и.JAD файлы есть в папке dist

Я тоже искал ответ и получили это один из http://forums.netbeans.org/ptopic3465.html

решена :)

+0

+1 Это должен быть ответ. Решила мою проблему. – 2011-08-24 14:08:11

6

Если вы используете плагин Maven сборки и хотят создать исполняемую банку с зависимостей, вам нужно добавить эту часть в конфигурации секции Maven сборки-плагина в вашем pom.xml:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
    <!-- ... --> 
    <archive> 
     <manifest> 
     <mainClass>your.app.SampleClass</mainClass> 
     </manifest> 
    </archive> 
    </configuration> 
</plugin> 

Источник: Maven Assembly Plugin Usage

7

У меня была такая же проблема в NetBeans 7.2.1 с проектом Maven Java Application. Измените файл pom.xml включить maven assembly plugin с одним подстройкой к ответу myrho (в нужно ссылаться на предопределенный дескрипторе «банка-с-зависимостей»):

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
       <mainClass>your.app.MainClass</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Альтернативный метод заключается в создании проекта приложения Java в NetBeans, который не использует Maven. Выберите «Файл» -> «Свойства проекта» -> «Сборка ->» и установите флажок «Копировать зависимые библиотеки».

0

В разделе 7.3 просто добавьте атрибуты Properties/Build/Package/Copy Dependent Библиотеки и основной класс (в зависимости от выбранной цели) будут добавлены в манифест при создании.

0

Чтобы вручную заставить пакет создания с IDE NetBeans 8.0.2 ...

  1. Проект навигатора разверните < проект> и щелкните правой кнопкой мыши Project Files/pom.xml
  2. Нажмите Run Maven/Цели
  3. типа "пакет" в поле Goals
  4. Нажмите OK

Окно вывода будет показывать (на Mac) ...

Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar 
0

Ok с neatbean вы можете сделать следующие шаги: 1. Щелкните правой кнопкой мыши имя проекта выбрать пункт Set Configuration и выберите Настройка
2. Выберите Выполнить и обратите внимание главный класс
3. Выберите чела e и установите класс, если вы хотите запустить. После нажатия кнопки ОК.
4. Готово.

Смежные вопросы