Подтвердить что ты не робот

Как сделать JAR из .java

Я писал простую программу, используя приложение Java (не приложение, в котором есть проекты, но приложение в проекте,.java), которое имеет один кадр. Оба файла являются .java, поэтому я не могу написать манифест, необходимый JAR. MyApp.java начинается как класс с пакетом, затем импортирует открытый класс MyApp {и имеет главную функцию, но он все еще .java! Я пишу это в JDeveloper 11g, если это помогает...

Любые идеи, как сделать JAR из этих файлов?

4b9b3361

Ответ 1

Откройте командную строку.

Перейдите в каталог, в котором есть ваши .java файлы.

Создать конструкцию каталогов

Запустите компиляцию java из командной строки

javac -d ./build *.java

Если ошибок нет, в каталоге сборки вы должны иметь дерево классов

перейдите в каталог сборки и выполните

jar cvf YourJar.jar *

Для добавления манифеста проверки командной строки командной строки

Ответ 2

Просто с командной строкой:

javac MyApp.java
jar -cf myJar.jar myApp

Уверенные IDE избегают использования терминала командной строки

Ответ 3

Хорошо, это решение, которое мне бы хотелось найти, вместо этого я пишу его:

Сначала создайте структуру каталогов, соответствующую пакету, определенному для файла .java, если это my.super.application, создайте каталог "мой" и внутри него "супер", а внутри него будет файл .java "App.java"

затем из командной строки:

   javac -cp /path/to/lib1.jar:/path/to/lib2.jar path/to/my/super/App.java

Обратите внимание, что вышеперечисленное будет включать несколько библиотек, если под окнами использовать "," для разделения нескольких файлов, иначе в GNU/Linux используйте ":" Чтобы создать файл jar

   jar -cvfe App.jar App my/app/

выше будет создано приложение с соответствующим манифестом, указывающим приложение как основной класс.

Включение необходимых библиотек внутри файла jar невозможно с использованием параметров командной строки java или jar.

Вместо этого вы можете:

  • вручную извлекать библиотеки в корневую папку файла jar
  • используйте среду IDE, такую ​​как Netbeans, и вставьте правило внутри раздела post-jar файла nbproject/build-impl.xml, чтобы извлечь библиотеки внутри банки. См. Ниже.
<target name="-post-jar">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
  <jar jarfile="${dist.jar}" update="true">  
            <zipfileset src="${dist.jar}" includes="**/*.class" />  
            <zipfileset src="${file.reference.iText-1.0.8.jar}" includes="**/*"/>
      <zipfileset src="${file.reference.itextpdf-3.2.1.jar}" includes="**/*"/>
  </jar>
    </target>

имена file.reference находятся внутри файла project.properties после того, как вы добавили библиотеки в среду NetBeans.

Ответ 4

Это можно сделать без терминала, непосредственно из IDE. Например, Netbeans.

  • Создайте отдельный проект с пакетами (Create Project - Java - Java Class Library).
  • Поместите свои классы .java.
  • Создайте этот проект.
  • Перейдите в папку проекта и найдите там папки для сборки и dist.
  • Найдите файл .jar в папке dist.
  • Получите ваш другой проект и добавьте этот .jar файл в библиотеки проектов.
  • Теперь вы можете ссылаться на классы из этой библиотеки и ее методы непосредственно из кода, если импорт автоматически выполняется для вас.

Ответ 5

Часто вам нужно указать манифест, например:

jar -cvfm myJar.jar myManifest.txt myApp.class

Что читается: "создайте подробное имя jarFilename manifestFilename", а затем файлы, которые вы хотите включить. Verbose означает печатать сообщения о том, что он делает.

Обратите внимание, что имя файла манифеста, который вы поставляете, может быть любым, так как jar будет автоматически переименовывать его и помещать в правый каталог в файле jar.