如何创建一个.jar运行命令行应用程序
问题描述:
为了方便,我将使用的hello world ...如何创建一个.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,没有任何反应。我希望控制台至少快速弹出... (我其实有一个更精细的程序,等待输入)
任何想法,为什么这不工作?
它已经开始在任务管理器(Windows),但没有CMD开通
答
答
请确保该Main-Class
线清单文件后面跟着一个空行!
很难相信,但规范要求清单文件的每一行(包括最后一行)都以换行符结尾。
编辑:
如果问题只是双击,尝试(假设Windows)中:
assoc .jar=jarfile
ftype jarfile="<JRE directory>\bin\javaw.exe" -jar "%1" %*
(使用这些无参数检查实际设置)
你的客户会需要JRE来运行Java程序 - 上述设置通常是通过安装JRE来完成的。
EDIT2:
使用java.exe
而不是javaw.exe
看到标准的控制台(如果你的程序不具有GUI)
答
清单需要被命名为MANIFEST.MF,它需要驻留在顶层名为META-INF的目录。那么它应该工作。
+0
我很确定那些是在创建时该jar被创建。 jar -tf Hello.jar给了我 – Mead3000 2011-12-27 15:54:05
当您使用'java -jar Hello.jar'在命令行运行程序时会发生什么? – tscho 2011-12-27 15:46:06
但我想把我的罐子送给没有电脑的人。我需要双击才能工作 – Mead3000 2011-12-27 15:47:55
嗯,我刚刚问过如果从命令行运行它会发生什么。在这种情况下你有任何错误吗? – tscho 2011-12-27 15:51:02