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初步了解(一)
			
安装django pip3 install django==版本号 创建一个djangp项目 django-admin startproject 项目名 目录介绍: 运行django项目: pytho ...
 - CAN总线电平(隐性与显性)
			
CAN2.0B规范定义了两种互补的逻辑数值:显性和隐性.同时传送显性和隐性位时,总线呈现显性状态:同时传送显性状态位时,总线呈现显性状态:同时传送隐性状态位时,总线呈现隐性状态.显性数 ...
 - ES6新的数据类型  generato,在AJAX中的应用
			
1.next()方法会执行generator的代码,然后,每次遇到yield x;就返回一个对象{value: x, done: true/false},然后“暂停”.返回的value就是yield的 ...
 - 这里有一份热乎乎的git相关操作
			
文件操作 git init (添加文件): git status (查看文件状态): git diff (查看修改内容): git rm (删除文件): git add (把文件保存在暂存区): gi ...
 - HDU4714 Tree2cycle 解题报告
			
题意 给定一棵无根树,删除或连接一条边的代价为\(1\),求把树变为环的最小代价. 前置思路 如果删除了\(k\)条边,使得树变成\((k+1)\)条链,再用\((k+1)\)次连接操作把树变成一个环 ...
 - Books Exchange (hard version)
			
The only difference between easy and hard versions is constraints. There are nn kids, each of them i ...
 - jumpserver 常见错误解决
			
官方链接:https://jumpserver.readthedocs.io/zh/master/faq_install.html 重启jumpserver后台 #cd /opt#python3.6 ...
 - X-Forwarded-For注入漏洞过程记录
			
一.题目地址 https://www.mozhe.cn/bug/detail/QWxmdFFhVURDay90L0wxdmJXSkl5Zz09bW96aGUmozhe 二.使用工具 FireFox浏览 ...
 - dbGet
			
dbGet是Innovus/Encounter DBTCL命令的一种.除了dbGet,DBTCL的命令还包括以下几种: 1. dbSet 2. setDbGetMode/getDbGetMode 3. ...
 - js数组和对象
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...