java -jar命令运行jar包时指定外部依赖jar包 linxux or windows
前尘回顾:
setup.bat
[chenquan@hostuser tartest]$ cat ../setup.sh
javac -encoding UTF-8 -Djava.ext.dirs=./ -d . ./SignNatureTest.java
echo compile finished,generate .class under package test at curdir
java -Djava.ext.dirs=./ test.SignNatureTest
1.生成jar包:sh hello.jar jar.sh
[chenquan@hostuser tartest]$ cat jar.sh
jar -cvf0m ${1} ./META-INF/MANIFEST.MF .
[chenquan@hostuser tartest]$ ls META-INF/
MANIFEST.MF
[chenquan@hostuser tartest]$ ls test/
SignNatureTest.class
[chenquan@hostuser tartest]$ cat META-INF/MANIFEST.MF
Manifest-Version: 1.0
Main-Class: test.SignNatureTest
[chenquan@hostuser tartest]
2.运行jar 实现jar外部依赖:
准备将上一步生成jar包移动到 外部依赖的jar libs目录内或者 与lib同层级目录都可以,
java -jar -Djava.ext.dirs=./libs ${i}
如果在libs内 ,命令-Djava.ext.dirs=参数为./ ,如果生成jar与libs同级那么改为./libs 意思就是告诉jar 我的依赖jar包相对于我要执行的jar包的位置在哪里
[chenquan@hostuser tests]$ ll
total 12
-rw-rw-r--. 1 chenquan chenquan 3188 Aug 4 12:06 foo.jar
-rw-rw-r--. 1 chenquan chenquan 3254 Aug 4 12:23 hello.jar
drwxr-xr-x. 4 chenquan chenquan 135 Aug 4 12:14 libs
-rwxrwxrwx. 1 chenquan chenquan 104 Aug 4 12:36 start.sh
[chenquan@hostuser tests]$ ls libs/
commons-codec-1.12.jar commons-lang3-3.9.jar setup.sh SignNatureTest.java tartest test
[chenquan@hostuser tests]$ cat start.sh
#!/bin/bash
for i in "$@"
do
java -jar -Djava.ext.dirs=./libs ${i}
echo "excuting ${i} res is:"
done [chenquan@hostuser tests]$
执行结果,这里我比较懒写的sh文件不用每次敲一遍执行命令:
[chenquan@hostuser tests]$ sh start.sh hello.jar foo.jar
&k1=values1&k2=33
MD5string is: 832c599beef71cce2ca7e3953b4dc5fb2019-08-04 12:50:20excuting hello.jar res is:
&k1=values1&k2=33
MD5string is: 832c599beef71cce2ca7e3953b4dc5fb2019-08-04 12:50:21excuting foo.jar res is:
[chenquan@hostuser tests]$
补充:Classpath
- Class-Path设置为
.是为了声明从哪个目录开始查找所有的引用类的jar包所在位置

java -jar命令运行jar包时指定外部依赖jar包 linxux or windows的更多相关文章
- Android之查看外部依赖jar的源代码_android private libralies does not allow modifications to source
在Eclipse中开发android的应用程序时,有时想查看函数的内部实现.可是当在函数上点击ctrl和鼠标左键的时候. 往往出现例如以下提示: Class File Editor Source no ...
- java项目打成jar包时引用了第三方jar,此时我们该如何解决呢
Web项目做多了,反而对单纯的java项目陌生了,今天我们在开发项目的过程中,碰到一个这样的需求:需要将java项目放到linux系统上跑起来,当然这个javaSE项目是带main方法的.我们知道在I ...
- Maven打war包时,添加本地jar包
1.在项目根目录中新建lib文件夹,添加jar包 2.在pom.xml文件中添加dependency <dependency> <groupId>com.oracle</ ...
- 当安装、卸载件包时,出现依赖问题 error: Failed dependencies
error: Failed dependencies:…… 依赖关系非常复杂,当你试图先安装任何一个包时都会出现这样的依赖关系错误,这时候你就应该强制安装了,我认为只要你把服务或软件需要的包都装上,强 ...
- 当安装、卸载件包时,出现依赖问题 error: Failed dependencies解决办法
error: Failed dependencies:-- 依赖关系非常复杂,当你试图先安装任何一个包时都会出现这样的依赖关系错误,这时候你就应该强制安装了,我认为只要你把服务或软件需要的包都装上,强 ...
- centos7下将java -jar命令运行一个项目做成systemd服务
有些时候运行一个java项目在linux下通过一条简单的java命令即可,如: #nohup java -jar jenkins.war & ###这里为后台运行jenkins 在此背景下,j ...
- 在下载jar包时,要有三个包,分别为使用的把class、查看文档的api、查看源代码的资源包
字节码包: spring-webmvc-4.1.6.RELEASE.jar 文档包: spring-webmvc-4.1.6.RELEASE-javadoc.jar 资源包: webmvc ...
- ASP.NET Core 如何在运行Docker容器时指定容器外部端口
前面我写了一系列关于持续集成的文章,最终构建出来的镜像运行之后,应该会发现每次构建运行之后端口都变了,这对于我们来说是十分不方便的,所以我们可以通过修改docker compose的配置文件来完成我们 ...
- ASP.NET Core 如何在运行Docker容器时指定容器外部端口(docker compose)
前面我写了一系列关于持续集成的文章,最终构建出来的镜像运行之后,应该会发现每次构建运行之后端口都变了,这对于我们来说是十分不方便的,所以我们可以通过修改docker compose的配置文件来完成我们 ...
随机推荐
- django--关于部署scrapyd项目报错问题
首先在同步两篇之前写过的博客,可能能用得到 1.https://www.cnblogs.com/lutt/p/10893192.html2.https://www.cnblogs.com/lutt/p ...
- 剑指offer 面试题40. 最小的k个数
O(N)划分法,注意这个方法会改变原数据(函数参数是引用的情况下)!当然也可以再定义一个新容器对其划分 要求前k小的数,只要执行快排划分,每次划分都会把数据分成大小两拨.直到某一次划分的中心点正好在k ...
- 关于jquery ajax不执行success回调函数
检查error函数是否执行,发现错误信息为parseerror,表示jquery解析返回结果时失败,只需要将ajax参数dataType:"json"改为"text js ...
- nginx-vue项目在window下的部署
主机->操作系统->window(.net)/Linux->tomcat/nginx(软件反向代理) 1.vue项目打包到dist文件夹(之后把dist文件夹放到服务器就可以了) n ...
- 每天进步一点点------Allegro 蛇形走线
对于高速数据总线,如果芯片内部没有延时调节功能,通常使用蛇形走线来调整延时以满足时序要求,也就是通常所说的等长线.蛇形走线的目的是调整延时,所以这一类网络都有延迟或相对延迟约束.所以在做蛇形走线调整时 ...
- 苹果公司以注重客户隐私闻名世界,但为什么Siri泄露了我的秘密?
编辑 | 于斌 出品 | 于见(mpyujian) 苹果的Siri因为其作为智能语音助手,方便人们打电话.发信息等功能,被人们所喜爱,但是最近,Siri好像有一些问题,让我们怀疑这位"小伙伴 ...
- Unity相机跟随
固定相机跟随 这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collections; public c ...
- liunx详解-1
一 文件系统 根目录结构 root root用户家目录 home 其他用户家目录 etc 系统配置目录 bin sbin 可执行二进制文件目录,sbin只有root可访问 opt 软件安装目录 usr ...
- 联想ideapad关闭Fn
1.打开bios 开启/重启电脑的时候长按Fn+F2,就可以打开bios面板 2.切换到configuration菜单 使用键盘的右箭头将切换到configuration 3.关闭Fn 使用键盘下箭头 ...
- 10day rpm简单用法qa ql qf "`"用法
查看软件是否安装: [root@oldboyedu ~]# rpm -qa sl -q表示查询 -a表示所有 sl-5.02-1.el7.x86_64 查看软件包中有哪些信息 [root@oldboy ...