Файл Jar командной строки Java - PullRequest
8 голосов
/ 20 января 2010

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

Ответы [ 5 ]

8 голосов
/ 20 января 2010

Не существует такого понятия, как «jar графического интерфейса» или «jar командной строки». Если вы хотите, чтобы программа работала из командной строки, вы должны читать и записывать файлы System.in и System.out или файлы, а не использовать Swing или AWT.

Если, с другой стороны, вы спрашиваете, как создать jar в командной строке, команда, что не удивительно, является "jar". Как в jar cf foo.jar com/my/foo/*.class

4 голосов
/ 20 января 2010

Да, можно создать консольную программу на Java. Eclipse даже поддерживает экспорт файла JAR с поддержкой Runnable.

Я только что создал фиктивное приложение, которое распечатывает аргументы, приведенные в командной строке, затем экспортировал его как jar и запустил, используя java -jar test.jar foo bar

package com.stackoverflow;

public class Test
{
  public static void main(String[] args)
  {
    for (int i = 0; i < args.length; ++i)
      System.out.println(args[i]);
  }
}

Затем щелкните правой кнопкой мыши файл Test.java в Eclipse, используйте меню «Экспорт ...», выберите «Runnable JAR-файл» и экспортируйте его, например, в C:\test.jar

.

Затем откройте командную строку и введите java -jar C:\test.jar foo bar, который печатает

Foo
бар

3 голосов
/ 20 января 2010

Да, вы можете запустить вашу программу с помощью чего-то похожего на следующую командную строку

java -jar <JARFILE> <CLASSNAME>

Возможно, вам придется указать -cp <DIRECTORY> или -classpath <DIRECTORY>, чтобы указать его на любые другие банки, которые вам нужны.

1 голос
/ 20 января 2010

Для автоматизации вещей я бы порекомендовал использовать задачу Ant jar . Файл сборки Ant выглядит следующим образом:

<project default="buildHello">
  <target name="compile">
    <javac srcdir="." />
  </target>

  <target name="jar" depends="compile">
    <jar destfile="hello.jar"
         basedir="."
         includes="**/*.class"
         />
  </target>

  <target name="buildHello" depends="compile,jar" />
</project>

Чтобы начать, просто наберите ant. Eclipse также имеет поддержку Ant.

> ant jar
Buildfile: build.xml

compile:

jar:
      [jar] Building jar: /Dev/hello.jar

BUILD SUCCESSFUL
Total time: 2 seconds
1 голос
/ 20 января 2010

Я не уверен, что вы спрашиваете, но все зависит от вашего кода.

Если ваш Java-код использует JFrame и другие компоненты GUI, тогда да, когда вы создаете jar, у вас будет программа с GUI.

Если ваш код Java просто печатается на экране без использования каких-либо компонентов графического интерфейса, то у вас будет консольное приложение.

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