you have to specify the "MANIFEST.MF" file and edit your "MANIFEST.MF" file to something like this :Manifest-Version: 1.0
Created-By: Idoox
Main-Class: Install
Class-Path: jaxp.jar xerces.jar crimson.jar xml-apis.jarthe "Install" is the class that have "public static void main(String [] args)"Good luck!

解决方案 »

  1.   

    If you still can not understand what I am saying, go to improve
    your English and read the following article.http://www.csdn.net/develop/Read_Article.asp?Id=14281
      

  2.   

    http://www.csdn.net/develop/Read_Article.asp?Id=14281
    这篇文章比较难懂 晦涩
    希望能看到一步一步的步骤和我看到的下面这篇文章有点不一样
    自解压文件 
    我们先来了解一下自解压文件,在window下可以用自解压制作工具如winzip self-Extractor来制作自解压文件,这些工具会把一个zip文件与解压程序打包在一起而产生一个新的可执行文件。然后只要运行这个可执行文件,就可以把zip文件中的内容解开。那为什么要创建自解压jar文件呢,创建成自解压zip文件不就好了?我们应该注意到自解压jar文件可以在任意支持java的平台上解开并执行,例如,可以在linux下执行。创建jar自解压文件很简单,只需要一个特殊的JAR manifest文件、一个基于java的解压程序(这个程序是原作者写的)、包含基本文件的jar 或者zip文件以及任何jsdk的jar应用程序 manifest文件 
    要生成可执行jar文件,需要在META-INF 目录下的manifest文件,文件名为:MANIFEST.MF ,但在我们这里我们只需要在文件中指定在这个基于java 的解压程序中包含main()的类的名称:Main-Class: ZipSelfExtractor 我们已经把一个叫做jarmanifest的文件加入到这个技巧的源程序包中。 解压程序 
    你可以用各种方法来实现这个解压程序,在我们这里使用了一个简单直接的办法。首先,解压程序判断这个自解压jar文件的名称,有了这个文件名,解压程序使用解压标准,把文件解开。具体的可以查看在源码包中的ZipSelfExtractor.java文件。 值得一提的是这里用了一个很巧妙的办法获取jar文件的文件名,虽然在命令行中出现的这个文件的名字,但它并没有作为参数传入类的main()中,因此,这里使用了以下的代码来获取文件名: private String getJarFileName () 

    myClassName = this.getClass().getName() + ".class"; 
    URL urlJar = 
    this.getClass().getClassLoader().getSystemResource(myClassName); 
    String urlStr = urlJar.toString(); 
    int from = "jar:file:".length(); 
    int to = urlStr.indexOf("!/"); 
    return urlStr.substring(from, to); 
    } 请注意:getSystemResource() 中使用了myClassName而不是ZipSelfExtractor.class作参数,这使得我们可以更改加压程序的名字而不需要修改代码。 接下来,我们来分析获得这个jar文件的名字。首先,可以获取指向包含正在运行类的文件,urlStr = urlJar.toString();有了这个url,把jar文件名去掉,剩下的就是我们想要的,下面是这个url的格式: 
    jar:file:/home/test/zipper.jar!/ZipSelfExtractor.class 有了文件名,就可以开始解压,详细的解压算法请大家自己看源码。 为了可以更方便实用,程序使用了图形界面,程序中使用了JFileChooser类可以选择要解压的目标目录。 最后程序还确保不把这两个文件:manifest文件和extractor's .class(在我们这里是ZipSelfExtractor.class)文件也解出来,程序是用来解开原始的jar的内容,而这两个文件并属于jar原始内容。 打包jar文件 
    有了manifest文件与解压程序,我们就可以创建自解压jar文件了,以下是一个例子: 
    1.创建一个zip文件Myzip.zip 
    2.下载zipper.jar 
    3.把文件解到当前目录,准备制作自解压jar文件 
    java -jar zipper.jar 
    4.把zipper.class拷贝成 ZipSelfExtractor.class 
    5.把 myzip.zip 重命名为 myzip.jar 
    6.把myzip.jar中的内容替换为jarmanifest和ZipSelfExtractor.class这两个文件 
    jar uvfm myzip.jar jarmanifest ZipSelfExtractor.class 
    7.执行java -jar myzip.jar就可以看到效果了,试试看 后记 
    一个自解压的jar文件能够很好的跨平台使用,自解压jar文件创建简单,只需要有jre1.2或或者更新的版本就可以实现了。 附自解压程序的源代码: /* ZipSelfExtractor.java */ 
    /* Author: Z.S. Jin 
    Updates: John D. Mitchell */ import java.io.*; 
    import java.net.*; 
    import javax.swing.*; 
    import java.util.zip.*; 
    import java.util.*; 
    import java.text.*; public class ZipSelfExtractor extends JFrame 

    private String myClassName; 
    static String MANIFEST = "META-INF/MANIFEST.MF"; public static void main(String[] args) 

    ZipSelfExtractor zse = new ZipSelfExtractor(); 
    String jarFileName = zse.getJarFileName(); 
    zse.extract(jarFileName); 
    System.exit(0); 
    } ZipSelfExtractor() 

    } private String getJarFileName() 

    myClassName = this.getClass().getName() + ".class"; 
    URL urlJar = this.getClass().getClassLoader().getSystemResource(myClassName); 
    String urlStr = urlJar.toString(); 
    int from = "jar:file:".length(); 
    int to = urlStr.indexOf("!/"); 
    return urlStr.substring(from, to); 
    } public void extract(String zipfile) 

    File currentArchive = new File(zipfile); JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(".")); 
    fc.setDialogType(JFileChooser.OPEN_DIALOG); 
    fc.setDialogTitle("Select destination directory for extracting " + 
    currentArchive.getName()); 
    fc.setMultiSelectionEnabled(false); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); if (fc.showDialog(ZipSelfExtractor.this, "Select") 
    != JFileChooser.APPROVE_OPTION) 

    return; //only when user select valid dir, it can return approve_option 
    } File outputDir = fc.getSelectedFile(); byte[] buf = new byte[1024]; 
    SimpleDateFormat formatter = new SimpleDateFormat ("MM/dd/yyyy hh:mma",Locale.getDefault()); ProgressMonitor pm = null; boolean overwrite = false; ZipFile zf = null; 
    FileOutputStream out = null; 
    InputStream in = null; try 

    zf = new ZipFile(currentArchive); int size = zf.size(); 
    int extracted = 0; 
    pm = new ProgressMonitor(getParent(), "Extracting files...", "starting", 0, size-4); 
    pm.setMillisToDecideToPopup(0); 
    pm.setMillisToPopup(0); Enumeration entries = zf.entries(); for (int i=0; i<size; i++) 

    ZipEntry entry = (ZipEntry) entries.nextElement(); 
    if(entry.isDirectory()) 
    continue; String pathname = entry.getName(); 
    if(myClassName.equals(pathname) || MANIFEST.equals(pathname.toUpperCase())) 
    continue; extracted ++; 
    pm.setProgress(i); 
    pm.setNote(pathname); 
    if(pm.isCanceled()) 
    return; in = zf.getInputStream(entry); File outFile = new File(outputDir, pathname); 
    Date archiveTime = new Date(entry.getTime()); if(overwrite==false) 

    if(outFile.exists()) 

    Object[] options = {"Yes", "Yes To All", "No"}; 
    Date existTime = new Date(outFile.lastModified()); 
    Long archiveLen = new Long(entry.getSize()); String msg = "File name conflict: " 
    + "There is already a file with " 
    + "that name on the disk!\n" 
    + "\nFile name: " + outFile.getName() 
    + "\nExisting file: " 
    + formatter.format(existTime) + ", " 
    + outFile.length() + "Bytes" 
    + "\nFile in archive:" 
    + formatter.format(archiveTime) + ", " 
    + archiveLen + "Bytes" 
    +"\n\nWould you like to overwrite the file?"; int result = JOptionPane.showOptionDialog(ZipSelfExtractor.this, 
    msg, "Warning", JOptionPane.DEFAULT_OPTION, 
    JOptionPane.WARNING_MESSAGE, null, options,options[0]); if(result == 2) // No 

    continue; 

    else if( result == 1) //YesToAll 

    overwrite = true; 


    } File parent = new File(outFile.getParent()); 
    if (parent != null && !parent.exists()) 

    parent.mkdirs(); 
    } out = new FileOutputStream(outFile); while (true) 

    int nRead = in.read(buf, 0, buf.length); 
    if (nRead <= 0) 
    break; 
    out.write(buf, 0, nRead); 
    } out.close(); 
    outFile.setLastModified(archiveTime.getTime()); 
    } pm.close(); 
    zf.close(); 
    getToolkit().beep(); JOptionPane.showMessageDialog 
    (ZipSelfExtractor.this, 
    "Extracted " + extracted + 
    " file" + ((extracted > 1) ? "s": "") + 
    " from the\n" + 
    zipfile + "\narchive into the\n" + 
    outputDir.getPath() + 
    "\ndirectory.", 
    "Zip Self Extractor", 
    JOptionPane.INFORMATION_MESSAGE); } 
    catch (Exception e) 

    System.out.println(e); 
    if(zf!=null) { try { zf.close(); } catch(IOException ioe) {;} } 
    if(out!=null) { try {out.close();} catch(IOException ioe) {;} } 
    if(in!=null) { try { in.close(); } catch(IOException ioe) {;} } 


    }
      

  3.   

    比如在c:\javacode下有下面一段很简单的程序B.JAVA,我该如何来建立B.jar文件。//B.java
    //{A
    class A
     
    {
    public int n;
    public A()
     
    {
    }    public A(int n)
     
    {
    this.n = n;
    }    int method()
        { return n;
        }
    }class B extends A
    {
    public B()
    {
    super(5);
                    System.out.println("super(5):"+super(5)); }
    public static void main(String args[])
    {
    A aInstance = new A();
    aInstance.n = 10;
     
    int b=aInstance.method(); 
    System.out.println("A:"+b);
    }
    谢谢朋友
      

  4.   

    Your programmer have some problems.
    The super() must be the first sentence at your constructor.
      

  5.   

    Put all your Class file and a file name MANIFEST.MF in the same directory.The content of the file ---- MANIFEST.MF:Manifest-Version: 1.0
    Created-By: Norwaywoods
    Main-Class: BRemember to type an "Enter" after the last letter in this file.
    Then open your command window. use the following command line:
    jar cvfm B.jar MANIFEST.MF B.class A.class
      

  6.   

    oh, I forgot that try the above "B.jar":java -jar B.jar orjust double click it.Enjoy it!
      

  7.   

    please ask how to create and edit the file MANIFEST.MF?
    thank you very much?
      

  8.   

    What? faint!Just edit it by your Notepad or something like that!!!!!
    Remember to type an "Enter" after all you have wrote.