javac 编译引用外部指定jar包进行编译和执行编译后的class文件
1.libs新建文件夹存放依赖所有jar包

2.cmd 执行:
2.1
javac -encoding UTF-8 -classpath .;C:\Users\chenquan\IdeaProjects\Toy\libs\commons-codec-1.12.jar;C:\Users\chenquan\IdeaProjects\Toy\libs\commons-lang3-3.9.jar -d . C:\Users\chenquan\IdeaProjects\Toy\src\test\SignNatureTest.java
2.2
javac -encoding UTF-8 -classpath .;C:\Users\chenquan\IdeaProjects\Toy\libs\commons-codec-1.12.jar;C:\Users\chenquan\IdeaProjects\Toy\libs\commons-lang3-3.9.jar -d . C:\Users\chenquan\IdeaProjects\Toy\src\test\SignNatureTest.java
1. encoding 防止中文乱码
2. -classpath 指定class文件路径
3. -d . 会在当前执行目录下生成 一个java所在的包名的(这里我的是test)目录,以及编译后的class文件
4. 指定要被编译的java文件
3.运行编译的class文件:最开始一直报无法找到主类问题,郁闷,后面查了下资料发先这个要带class文件的package的包名(这里是test)与python -m moudle.class.method 雷同,简直了哈哈哈

3.优化,由于依赖包很多,不可能每个都敲上去吧:
path_jars 可以是相对路径也可以是绝对路径
java -Djava.ext.dirs=path_jars package.className
java -Djava.ext.dirs=C:\Users\chenquan\IdeaProjects\Toy\libs test.SignNatureTest
java -Djava.ext.dirs=./ test.SignNatureTest
C:\Users\chenquan\IdeaProjects\Toy\libs>java -Djava.ext.dirs=./ test.SignNatureTest
&k1=values1&k2=33
MD5string is: 832c599beef71cce2ca7e3953b4dc5fb2019-08-03 19:23:02

4.批量依赖编译:
javac -encoding UTF-8 -Djava.ext.dirs=./ -d . C:\Users\chenquan\IdeaProjects\Toy\src\test\SignNatureTest.java
javac -encoding UTF-8 -Djava.ext.dirs=./ C:\Users\chenquan\IdeaProjects\Toy\src\test\SignNatureTest.java
发现一个有趣的事情: 不指定classpath 和 d .生成的位置会默认到.java所在包下面:

致谢这些良心博主:https://blog.csdn.net/yiluoAK_47/article/details/81975536
https://blog.csdn.net/tuohuang0303/article/details/84304995
https://blog.csdn.net/myfmyfmyfmyf/article/details/53179395
以上都是命令行操作对于IDEA其实已经有了手动编译的功能,只不过要求你手动配置libarary解决代码引用jar包类,在进行recompile:

linux test:
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
echo run sign.class success !!!

javac 编译引用外部指定jar包进行编译和执行编译后的class文件的更多相关文章
- maven项目引入外部第三方jar包,引入、本地编译、第三方jar一起打到jar中、在linux机器中解决classnotfound(配置classpath),笔记整理。
文章目录 引用的第三方jar的目录结构(示例) 引入第三方jar进行dependency使项目内能import 本地编译 第三方jar一起打到jar中 在linux机器中解决classnotfound ...
- java -jar命令运行jar包时指定外部依赖jar包 linxux or windows
前尘回顾: setup.bat [chenquan@hostuser tartest]$ cat ../setup.sh javac -encoding UTF-8 -Djava.ext.dirs=. ...
- Jdk和Jre目录和三个lib目录说明----外部扩展jar包servlet,mysql,oracle等
以下文章转载自a personal blog:For Future,因为昨天下午在cmd模式下编译servlet失败,后来在网上找到这篇文章帮我解决了该问题,我觉得挺值得收藏的,并且这篇文章对&quo ...
- 字节码 反编译 APKTool 重新打jar包 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...
- (转载)Eclipse将引用了第三方jar包的Java项目打包成可执行jar的两种方法
转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 "MA ...
- 将引用了第三方jar包的Java项目打包成jar文件的两种方法
方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...
- eclipse将引用了第三方jar包的java项目打成jar包
今天用java开发了一个项目,想要打成jar包,并在linux环境下运行.但是运行时引用的第三方jar包却显示classNotFind错误. 于是查了一下解决办法,在此贴出来,方便以后查阅. 用Ecl ...
- maven 引用另一个jar包 需要先打包在仓库里面 并在pom里面配置 才可以引用
maven 引用另一个jar包 需要先打包在仓库里面 并在pom里面配置 才可以引用
随机推荐
- webrtc博客收藏
<使用WebRTC搭建前端视频聊天室——入门篇><使用WebRTC搭建前端视频聊天室——信令篇><使用WebRTC搭建前端视频聊天室——点对点通信篇><使用W ...
- iterations 快捷键
原帖:https://blog.csdn.net/Soinice/article/details/83505198 为了防止删除备份的. iterations 快捷键 Live Templates 其 ...
- js中float失精
https://juejin.im/post/5aa1395c6fb9a028df223516 把小数转为整数,然后计算 https://www.html.cn/archives/7340
- 算法竞赛入门经典第二版 回文词P49
#include<bits/stdc++.h> using namespace std; char rev[]="A 3 HIL JM O 2TUVWXY51SE Z 8 &qu ...
- 1.5 面试问题整理:cl
1.自我介绍2.介绍测试的项目> 期望答案:让你介绍项目,目的是想知道你参与过该项目后,对该项目的认识程度和认识层次,从而判断你在项目中到底起多大作用. 即:测试的流程.用例设计的方法.在项目中 ...
- 开发笔记-记一个基础logback配置
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true&q ...
- 转载:HRTF virtaul surround
https://blog.csdn.net/Filwl_/article/details/50503558 https://blog.csdn.net/lwsas1/article/details/5 ...
- PHP基础学习笔记4
一.日期 1.1 date()函数 语法:string date ( string $format [, int $timestamp ] ) 参数:参数描述format必需,规定时间戳的格式:tim ...
- 使用java实现AES算法的加解密(亲测可用)
话不多说,直接上代码 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.cryp ...
- 【转载】C/C++编译过程分析
转自:http://www.360doc.com/content/14/0109/16/835125_343879650.shtml C/C++编译过程 C/C++编译过程主要分为4个过程 1) 编译 ...