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