Java命令行Jar文件

8

我已经使用Eclipse的导出功能创建了几个.jar文件,但它们都是带有GUI界面的。我想创建一个纯命令行的.jar文件,这可能吗?


1
当然。只需从命令行运行它即可。 - jdigital
我理解的是:您想双击.jar文件,打开控制台并从那里进行交互。这正确吗? - OscarRyz
5个回答

8

没有所谓的“GUI jar”或“命令行jar”。如果你想让程序在命令行上运行,那么你应该读写System.in和System.out或文件而不是使用Swing或AWT。

另一方面,如果你想知道如何在命令行上创建一个jar,那么命令是“jar”,并且可以这样使用:jar cf foo.jar com/my/foo/*.class


1
我正在谷歌搜索这个第二个用例,虽然我怀疑它没有帮助到OP,但它确实帮助了我 :) - Zlatko

4

在Java中创建控制台程序是可以的。Eclipse甚至提供了可运行的JAR文件导出功能。

我刚刚创建了一个虚拟应用程序,它会打印出在命令行上输入的参数,然后将其导出为一个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]);
  }
}

然后在Eclipse中右键单击Test.java文件,使用“导出...”菜单并选择“Runnable JAR文件”,将其导出到例如C:\test.jar

然后打开命令提示符并输入java -jar C:\test.jar foo bar,它会输出

foo
bar


3

是的,你可以使用类似以下命令行的方式运行你的程序:

java -jar <JARFILE> <CLASSNAME>

你可能需要指定 -cp <DIRECTORY>-classpath <DIRECTORY> 来将它指向其他你需要的 jar 包。


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

1
我不确定你在问什么,但一切都取决于你的代码。
如果你的Java代码使用JFrame和其他GUI组件,那么当你创建jar文件时,你将拥有一个GUI程序。
如果你的Java代码只是在屏幕上打印而没有使用任何GUI组件,那么你将拥有一个控制台应用程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接