如何创建.jar来运行命令行应用程序

时间:2011-12-27 15:41:25

标签: java jar

为了方便我将使用你好世界...

public class HelloWorld{

    public static void main (String [] args){
        System.out.println("Hello World");
    }
}

按照您的想象编译并运行正常。然后制作了一个文件Manifest.txt,其中包含:

Main-Class: HelloWorld

然后跑了:

jar -cfm Hello.jar Manifest.txt *.class

然而,当我双击生成的Hello.jar时,没有任何反应。我希望控制台至少快速弹出...... (事实上​​,我有一个更精细的程序,等待输入)

为什么这不起作用?

它正在任务管理器(窗口)中启动一个进程,但没有cmd打开

4 个答案:

答案 0 :(得分:2)

确保清单文件中的Main-Class行后跟一个空行!
很难相信,但规范要求清单文件的每一行(包括最后一行)都由换行符终止。

编辑:
如果问题只是双击,请尝试(假设Windows):

assoc .jar=jarfile
ftype jarfile="<JRE directory>\bin\javaw.exe" -jar "%1" %*

(使用不带参数的方法来检查实际设置)

您的客户端需要JRE来运行Java程序 - 上述设置通常由安装JRE完成。

EDIT2:
使用java.exe代替javaw.exe查看标准控制台(如果您的程序没有GUI)

答案 1 :(得分:1)

尝试从命令行执行

java -jar /path/to/YourJar.jar

确保您有Main-Class条目


另见

答案 2 :(得分:0)

清单需要命名为MANIFEST.MF,它需要驻留在名为META-INF的顶级目录中。然后它应该工作。

答案 3 :(得分:0)

您应该尝试JSmooth。它将您的jar文件包装到Windows可执行文件中。