How to run a jar

自己的写的jar包如何运行了?在window上c写的exe当然容易了,jar包可以通过如下方式比如有jar包publish.jar,此jar包不依赖任何jar包,那么:

JAVA –JAR Hello.jar

即可完成。不过需要注意的是Hello.jar必须要在Manifest.mf指明入口函数(我的package是com.byinsight.publish,主类是Publish)

Manifest-Version: 1.0

Main-Class: com.byinsight.publish.Publish

如此就可以执行你的jar包了。但是如果jar依赖于别的jar包才能运行怎么办?你可以把这些jar包放入%Java_home%/jre/lib/ext中,此时修改classpath时没有用的。或者通过java –cp。比如我的jar包在路径在C:/Program Files/Java/jre6/mylib中。我可以新建一个bat文件,内容如下:

cd C:/Program Files/Java/jre6/mylib

"C:/Program Files (x86)/Java/jre1.6.0_03/bin/java" –cp aa.jar;bb.jar c:/publish.jar com.byinsight.publish.Publish

Jar包的分隔linux系统下用冒号,windows下用分号注意此时我的运行jar和依赖的jar不在一个目录下,否则c:/publish.jar可以去掉。这样这个bat文件和jar包交给客户就行了,如果jar位置变了只需要改变文件夹路径即可。但是还有一个问题,如果所需要的jar包太多了怎么办?固然可以通过dir /b *.jar >> t.txt先将所有jar倒入到文本中在通过notepad之类的整理好,难道没有更好的方法吗?比如 java –cp *.jar 之类的。当然有了!如下:

cd C:/Program Files (x86)/Business Objects/common/4.0/java/lib

java -Djava.ext.dirs=. -cp c:/publish.jar com.byinsight.publish.Publish

只需要指明目录即可不用一个一个的把jar包放在里面!这样做的效果就相当于之前的把jar包放进了%Java_home%/jre/lib/ext中,因为指明了ext的系统变量。关于java类加载可以参考http://en.wikipedia.org/wiki/Java_Classloader。也可以通过一个小程序看看你的ext目录:

public class Test {

    public static void main(String args[]){

        Properties properties = System.getProperties();

        System.out.println(properties.getProperty("java.ext.dirs"));

        

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值