问题: 
       //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.)
通过互联网和资料查阅,问题尚未解决,特求助。谢谢各位

解决方案 »

  1.   

    打包时没有指定manifest文件。
    manifest.mf 内容
    Main-Class: A
    CLASS-PATH: .  
    jar cvfm A.jar manifest.mf A.class B.class
      

  2.   

    你的 jar 里面的 MANIFEST.MF 是工具 jar 帮你生成的还是手工写的,手工写要注意一些小问题:
    1. 大小写不要搞错了。
    2. 最后有一个空行。
    3. 每行不超过 72 个字符。另外,你的 A B 类有包名吗?看你把 package ... 用 // 注释掉,是表示它有包名,还是没有包名?如果类 A / B 都有包名,在 MANIFEST.MF 中 Main-Class: 后面也要包括包名。