当前位置:  技术问答>java相关

搞了3小时都不出来。高分相送(jar文件出错)急~~~~~~~

    来源: 互联网  发布时间:2015-10-21

    本文导语:  import java.awt.*;  import java.awt.event.*;  public class MyClass  {  public static void main(String[] args)  {  Frame f = new Frame();  f.addWindowListener  (new WindowAdapter()  {  public void windowClosing(WindowEvent e)  {  System.exit(0);  }  }  );...

import java.awt.*; 
import java.awt.event.*; 
public class MyClass 

public static void main(String[] args) 

Frame f = new Frame(); 
f.addWindowListener 
(new WindowAdapter() 

public void windowClosing(WindowEvent e) 

System.exit(0); 


); 
f.add(new Label("Hello world")); 
f.setSize(200,200); 
f.setVisible(true); 



然后创建这个manifest 文件(manifest.mft) (在bin下)
Manifest-Version: 1.0 
Main-Class: MyClass 
Classpath: .MyJar.jar 
保存为mainfest.mft

在 dos 窗口下运行 

jar cvfm MyJar.jar manifest.mft MyClass.class 
出错:
Exception in thread "main" java.util.zip.ZipException: 系统找不到指定的文件。
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.(ZipFile.java:112)
        at java.util.jar.JarFile.(JarFile.java:117)
        at java.util.jar.JarFile.(JarFile.java:55)
请大家指点呀!!!!!!!!!!!!
小弟感激不尽!

|
Manifest你不要自己写Classpath.用自己生成的
jar cvf MyJar.jar MyClass.class .

|
jar cvf MyJar.jar MyClass.class

以下这个程序可以实现将jar文件和含有main的类关联的功能,不过是别人

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.jar.*;

/**
 * This utility makes a JAR runnable by inserting a Main-Class
 * attribute into the Manifest.
 *
 * @author Shawn Silverman
 */
public class MakeJarRunnable {
    public static void main(String[] args) throws IOException {
        if (args.length != 3) {
            System.out.println("Usage: MakeJarRunnable "
                               + "  ");
            System.exit(0);
        }

        // Create the JarInputStream object, and get its Manifest

        JarInputStream jarIn = new JarInputStream(new FileInputStream(args[0]));
        Manifest manifest = jarIn.getManifest();
        if (manifest == null) {
            // This will happen if there is no Manifest

            manifest = new Manifest();
        }

        Attributes a = manifest.getMainAttributes();
        String oldMainClass = a.putValue("Main-Class", args[1]);

        // If there was an old value there, tell the user about it and exit

        if (oldMainClass != null) {
            System.out.println("Warning: old Main-Class value is: "
                               + oldMainClass);
            System.exit(1);
        }

        System.out.println("Writing to " + args[2] + "...");
        JarOutputStream jarOut = new JarOutputStream(new FileOutputStream(args[2]),
                                                     manifest);

        // Create a read buffer to be used for transferring data from the input

        byte[] buf = new byte[4096];

        // Iterate the entries

        JarEntry entry;
        while ((entry = jarIn.getNextJarEntry()) != null) {
            // Exclude the Manifest file from the old JAR

            if ("META-INF/MANIFEST.MF".equals(entry.getName())) continue;

            // Write out the entry to the output JAR

            jarOut.putNextEntry(entry);
            int read;
            while ((read = jarIn.read(buf)) != -1) {
                jarOut.write(buf, 0, read);
            }

            jarOut.closeEntry();
        }

        // Flush and close all the streams

        jarOut.flush();
        jarOut.close();

        jarIn.close();
    }
}

制作可运行的jar文件:
java MakeJarRunnable myjar.jar  HelloRunnableWorld myjar_r.jar
myjar.jar表示要制作成可运行的已做成jar的源文件。HelloRunnableWorld 表示包含main的类(不包括.class后缀)。myjar_r.jar表示可运行的jar文件。


在myjar_r.jar中的META-INF目录的MANIFEST.MF文件中要比普通的jar文件多一行:Main-Class: HelloRunnableWorld
运行:java -jar myjar_r.jar

|
反正你的文件不多,就用楼上的方法就行了

|
看看这个帖子,jar命令的解释

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • CronTab Job 每隔一个小时 二个小时 3个小时和4个小时的执行job怎么写
  • 需要几分钟或半个小时或一个小时执行,定时用alarm还是sleep好?
  • new SimpleDateFormat("hh:mm:ss dd.MM a") 的时间是12小时制的,怎样可以得到24小时制的格式?
  • 如何写命令每两小时删除目录下两小时间前建的子目录及文件。
  • c语言实现24小时制转换为12小时制示例
  • 给培训中心做讲师,一个小时开多少钱合适?
  • javascript 小时:分钟的正则表达式
  • 急需楚广明的24小时学会LINUX视频教程
  • Red hat Linux 开机几个小时后,喇叭一直响不停
  • UNIX的时间为什么会隔一段时间就提前一个小时
  • 两小时搞定负载均衡视频教程
  • 杀掉运行超过一个小时的进程
  • 我开放一个演示站点怎么让他一个小时自动恢复默认的设置?
  • 在unix查找某个目录下一小时前的生成的文件,怎么查找?find只能按天来查。
  • 在liunx系统上跑程序,几个小时后系统死机,而cpu不狂涨,也无内存泄露
  • unix/linux知识 iis7站长之家
  • php文章24小时内显示红色文字的示例代码
  • 流量不是很大的服务器2-3小时死机一次会是什么原因
  • 紧急求援,限时解答(3小时内给分)
  • scjp考不考applet和GridBagLayout?一小时内给分


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3