我的简单"你好,世界"程序具有以下文件结构:
根 TestClass.class manifest.txt
这是TestClass.java中包含的源:
package root;
public class TestClass {
public static void main(String[] args) {
System.out.println("Executable jar worked!");
}
}
manifest.txt包含这个(它以换行符结尾):
Main-Class: TestClass
在cmd.exe(Windows 7,如果相关)中,我使用以下命令创建了一个.jar:
jar cvfm TestClass.jar manifest.txt TestClass.class
产生以下内容:
added manifest
adding: TestClass.class(in = 439) (out= 303)(deflated 30%)
当我尝试执行此新jar文件时出现问题。我首先尝试简单地输入TestClass.jar,这绝对没有输出 - 相当于只需按下输入..
接下来,我尝试了这个:
java -jar TestClass.jar
给了我:
Error: Could not find or load main class TestClass
所以我的问题是:如何仅在命令提示符下生成和运行jar文件,以便在cmd中可以看到输出?
我希望它是自包含的,并且可执行的方式与chrome.exe相同。 提前谢谢。
答案 0 :(得分:0)
您必须在清单文件
中指定完全限定的类名在您的情况下,您必须指定包名称root,因此您的manifest.txt应包含如下
Main-Class: root.TestClass
注意:您必须将TestClass.class文件放在名为root的目录中(即,包名称应与目录名称匹配)
root/TestClass.class
使用此命令创建jar文件
jar cvfm Test.jar manifest.txt root/TestClass.class