javac 编译引用外部指定jar包进行编译和执行编译后的class文件 您所在的位置:网站首页 java项目引用jar包生成文件中文乱码 javac 编译引用外部指定jar包进行编译和执行编译后的class文件

javac 编译引用外部指定jar包进行编译和执行编译后的class文件

2023-10-29 01:03| 来源: 网络整理| 查看: 265

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=33MD5string 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 !!!

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有