2010-01-20 111 views
8

我已經創建了一些.jar文件(使用Eclipse的導出功能),但他們都是圖形用戶界面。我想創建一個嚴格命令行的.jar文件;這可能嗎?Java命令行JAR文件

+1

肯定。只需從命令行運行它。 – jdigital 2010-01-20 16:32:15

+0

我的理解是:你想雙擊.jar文件並打開一個控制檯並從那裏進行交互。它是否正確? – OscarRyz 2010-01-20 16:53:22

回答

4

是的,它可以創建Java中的控制檯程序。 Eclipse甚至有一個可運行的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和使用「導出...」菜單,選擇「運行的JAR文件」,將其導出爲實例C:\test.jar

然後打開命令提示符,然後鍵入java -jar C:\test.jar foo bar打印出

FOO
酒吧

8

有作爲「GUI罐」或「命令行罐子」沒有這樣的事。如果你想要一個程序在命令行上工作,那麼你可以讀寫System.in和System.out或文件,而不是使用Swing或AWT。

如果在另一方面,你都在問如何創建在命令行上一個罐子,命令,沒有太多令人驚訝的「罐子」。作爲jar cf foo.jar com/my/foo/*.class

+1

我是谷歌搜索這個第二個用例,雖然我懷疑它幫助OP,它肯定幫助我:) – Zlatko 2013-04-02 19:16:01

3

是的,你可以用類似下面的命令行

java -jar <JARFILE> <CLASSNAME> 

東西運行您的程序,您可能必須指定-cp <DIRECTORY>-classpath <DIRECTORY>在您需要的任何其他JAR點吧。

1

我不知道你問什麼,但一切都取決於你的代碼。

如果您的Java代碼使用JFrame和其他GUI組件,那麼是的,當您創建jar時,您將擁有一個GUI程序。

如果您的Java代碼只是在屏幕上打印而不使用任何GUI組件,那麼您將擁有一個控制檯應用程序。

1

要自動完成的事情,我會建議使用Ant jar task。 一個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