2010-01-20 6 views
8

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

+1

Несомненно. Просто запустите его из командной строки. – jdigital

+0

Что я понимаю: вы хотите дважды щелкнуть файл .jar и открыть консоль и взаимодействовать оттуда. Это верно? – OscarRyz

ответ

4

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

Я только что создал фиктивную приложение, которое печатает аргументы, приведенные в командной строке, а затем экспортировал его в баночку и запустил его, используя 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
бар

8

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

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

+1

Я искал поисковый запрос для этого второго варианта использования, и хотя я сомневаюсь, что он помог OP, он действительно помог мне :) – Zlatko

3

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

java -jar <JARFILE> <CLASSNAME> 

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

1

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

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

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

1

Чтобы автоматизировать работу, я бы рекомендовал использовать Ant jar task. муравей Buildfile выглядит следующим образом:

<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