问题:
//package cn.com.hank.http.www.test;
public class B
{
public B()
{
System.out.println("B::B()");
}
}
//package cn.com.hank.http.www.test;
public class A
{
public A()
{
System.out.println("A::A()");
}
public static void main(String[] args)
{
new A();
new B();
}
}
编写一个内容MANIFEST.MF的文件,内容如下:
Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystem Inc.)
Main-Class: A
将两个源文件A.class、B.class及MANIFEST.MF打包生成文件: A.jar,然后编写文件A.bat,内容如下:
javaw -jar A.jar
双击"A.bat"却无法运行,出现了如下的错误提示:
Failed to load Main-Class manifest attribute from A.jar
解压A.jar后,META-INF文件夹中的MANIFEST.MF文件中只有内容:
Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystem Inc.)
通过互联网和资料查阅,问题尚未解决,特求助。谢谢各位
manifest.mf 内容
Main-Class: A
CLASS-PATH: .
jar cvfm A.jar manifest.mf A.class B.class
1. 大小写不要搞错了。
2. 最后有一个空行。
3. 每行不超过 72 个字符。另外,你的 A B 类有包名吗?看你把 package ... 用 // 注释掉,是表示它有包名,还是没有包名?如果类 A / B 都有包名,在 MANIFEST.MF 中 Main-Class: 后面也要包括包名。