Java создает файл .jar - PullRequest
       6

Java создает файл .jar

67 голосов
/ 04 января 2011

Я изучаю Java, и у меня есть проблема. Я создал 6 разных классов, каждый из которых имеет свой собственный метод main(). Я хочу создать исполняемый файл .jar для каждого класса, то есть 6 исполняемых файлов .jar.

Пока я пытался

java -jar cf myJar.jar myClass.class

и я получаю 'Невозможно получить доступ к jarfile cf' . Я делаю что-то не так, но я не знаю что. Я также использую Eclipse IDE, если это что-то значит.

Ответы [ 5 ]

107 голосов
/ 04 января 2011

Чтобы создать файл .jar, вам нужно использовать jar вместо java:

jar cf myJar.jar myClass.class

Кроме того, если вы хотите сделать его исполняемым, вам нужно указать точка входа (т. Е. Класс с public static void main(String[] args)) для вашего приложения.Обычно это достигается созданием файла manifest , который содержит заголовок Main-Class (например, Main-Class: myClass).

Однако, как отметил Марк Петерс, в JDK 6 вы можете использовать опцию e для определения точки входа:

jar cfe myJar.jar myClass myClass.class 

Наконец, вы можете выполнить ее:

java -jar myJar.jar

См. Также

15 голосов
/ 04 января 2011

Так как вы упомянули, что используете Eclipse ... Eclipse может создавать JAR для вас, если вы запускаете каждый класс, у которого есть main.Щелкните правой кнопкой мыши проект и выберите «Экспорт», затем выберите «Runnable JAR-файл» в папке Java.Выберите имя класса в конфигурации запуска, выберите место для сохранения фляги и примите решение, как обращаться с библиотеками при необходимости.Нажмите «Готово», вытрите руки о штаны.

8 голосов
/ 11 августа 2015

Зачастую вам нужно поместить в манифест больше, чем вы получаете с помощью переключателя -e, и в этом случае синтаксис:

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

, который гласит: «создать подробный jarFilename manifestFilename», а затем файлы, которые вы хотите включить.

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

4 голосов
/ 09 ноября 2013

way 1:

Пусть у нас есть java-файл test.java, который содержит основной класс testa. Сначала мы скомпилируем наш java-файл просто как javac test.java, создаем файл manifest.txt в том же каталоге и пишемMain-Class: mainclassname.Например:

  Main-Class: testa

затем мы создаем файл jar с помощью этой команды:

  jar cvfm anyname.jar manifest.txt testa.class

затем запускаем файл jar с помощью этой команды: java -jar anyname.jar

путь 2:

Пусть у нас есть один пакет с именем one, и каждый класс находится внутри него.затем мы создаем файл jar с помощью этой команды:

  jar cf anyname.jar one

, затем мы открываем файл manifest.txt в каталоге META-INF в файле anyname.jar и пишем

  Main-Class: one.mainclassname 

в третьей строке.,затем мы запускаем файл jar с помощью этой команды:

  java -jar anyname.jar

, чтобы сделать файл jar, содержащий более одного файла класса: jar cf anyname.jar one.class two.class three.class ......

2 голосов
/ 13 декабря 2013

Поместите все 6 классов в 6 различных проектов.Затем создайте jar-файлы всех 6 проектов.Таким образом вы получите 6 исполняемых jar-файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...