Make executable jar file 可执行的jar文件的制作

   今天,一直在摸索可执行的jar文件的制作,按照从网上搜索得来的"手动制作可执行JAR的方法",那么去做,总是得到下面的错误,百思不得其解.自己摸索了好久,打开J2SDK的关于JAR的文档看了看(相对于本地机器J2SDK的安装位置docs/tooldocs/windows/jar.html中),做了试验才发现不是像有些文档那么简单的说只要"Main-class : package.主执行文件",就可以了!其实,最重要的是要在manifest.mf文件中加入"Main-class :"后留一空行或者直接在"Class-Path"这个属性中指明package的名!

Manifest.mf(不加Class-Path属性)
Main-Class: execute.j0001
       <---一定要在手工建立manifest.mf时留有空行或者加入Class-Path属性

否则,在建立了jar包后,使用"Java -jar jar包名"时,会出现如下的错误!

d:java>java -jar myjarfile.jar
failed to load main-class manifest attribute from
myjarfile.jar

    我们就简单以Hello,Java World举例说明一下吧!

desc.java
//desc.java
//通过继承类来重设desc中的函数达到description this program 的目的
package execute;
public class desc
{
//public String desc="";
public desc()//Constructor
{
}
public void ds(String filename,String desc)//该方法用于为调用该方法的程序输出
{ //一段说明
System.out.println("====================n");
System.out.println("FileName: "+filename+"n");
System.out.println("FileDesc: "+desc+"n");
System.out.println("====================n");
}
}


j0001.java
package execute;
import execute.*;
//can execute class
//可以执行的类

public class j0001 //extends desc
{
public static void main(String[] args)
{
desc fileds = new desc();
fileds.ds("j0001.java","inherit class");
System.out.println("Hello,Java World!");
}
}


Manifest.mf(加Class-Path属性)
Created-By: macleo
Main-Class: execute.j0001
Class-Path: execute


在DOS提示符的方式下输入
d:java>jar cvmf manifest.mf test.jar execute
标明清单(manifest)
增加:execute/(读入= 0) (写出= 0)(存储了 0%)
增加:execute/desc.class(读入= 712) (写出= 411)(压缩了 42%)
增加:execute/j0001.class(读入= 550) (写出= 361)(压缩了 34%)
d:java>
d:java>java -jar test.jar
====================

FileName: j0001.java

FileDesc: inherit class

====================

Hello, Java World!

呵呵,体会到了成功的喜悦了吧?! ^_^/ 好,我们这下大概知道了"executable Jar file"的制作了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值