运行java可执行jar包

导出与导入:如果要用别的项目的类, 把对方类export出成jar包(多个类的集合),然后复制到自己项目路径下然后添加至构建路径,jar包右键buildpath/addtobuildpath。export导出javadoc文档,index文件用浏览器打开。

1.控制台的可通过cmd命令:java -jar 包名.jar(需要进入到当前的jar包目录)

2.建bat文件写进代码java -jar xxx.jar双击执行(同一路径下)

@echo off
java -jar events.jar
pause

需要注意的是:如果提示没有属性清单和主类,我们只需要用压缩软件打开jar包,找到META-INF/MANIFEST.MF文件,然后在按照下面格式编写就OK了。

Manifest-Version: 1.0
Main-Class: eventsDemo.eventText

但是当我们的jar包里有第三方的jar包引用就会报找不到Class异常,原因就是jar引用不到放在自己内部的jar包。

一,用Bootstrap Classloader来加载这些类

win32 java -Xbootclasspath/a: 第三方jar包名.jar;第三方jar包名.jar; -jar events.jar

unix    java -Xbootclasspath/a: 第三方jar包名.jar:第三方jar包名.jar: -jar events.jar

win32系统每个jar用分号隔开,unix系统下用冒号隔开

方法二:在META-INF/MANIFEST.MF文件里加Class-Path: lib/第三方jar包名.jar, lib是和events.jar同目录的一个子目录,events.jar要引用的第三方包就在这里面。

如果有多个jar包需要引用的情况:

Class-Path: lib/第三方jar包名.jar lib/第三方jar包名.jar

每个单独的jar用空格隔开就可以了。注意使用相对路径。

另:如果META-INF 下包含INDEX.LIST文件的话,可能会使Class-Path配置失效。INDEX.LIST是Jar打包工具打包时生成的索引文件,删除对运行不产生影响。

java -Xmx1G -classpath .;lib\kutil.jar;lib\a.jar;lib\b.jar test.AAA --xxx=.

在当前目录下和lib目录下找到test包下的AAA类并执行 --xxx=. 为参数, 按照顺序找,执行第一个找到的类。-classpath会覆盖CLASSPATH环境变量的值。https://www.jianshu.com/p/87637b150026

https://www.iteye.com/blog/notafraid-2239958

可执行的jar包就是可以用java -jar xx.jar 执行的jar包。 不可执行的就是嵌入到其他项目的jar包。

 


原文链接:https://blog.csdn.net/weixin_39407066/article/details/83625316

posted @ 2019-12-19 16:55  peachlf  阅读(2343)  评论(0编辑  收藏  举报