记录一下关于简单的Java文件运行与打成jar包运行的方式和优劣
一、单个java文件运行方式
*Linux系统环境中多个jar之间的分隔符号用:
*Windows系统多个jar之间分隔符号用;
*
遵循java -cp xx.jar;xxxjar 主类 参数
#编译Java文件
$ javac -cp easyexcel-2.1.6.jar;lombok-1.16.16.jar;fastjson-1.2.62.jar; -encoding UTF-8 ExcelUpdateUtils.java
#运行class文件
$ java -cp easyexcel-2.1.6.jar;lombok-1.16.16.jar;fastjson-1.2.62.jar;slf4j-api-1.7.10.jar;poi-3.17.jar;slf4j-api-1.7.10.jar;poi-ooxml-3.17.jar;poi-ooxml-schemas-3.17.jar;xmlbeans-2.6.0.jar;cglib-3.1.jar; ExcelUpdateUtils
问题处理:
1、在运行过程中如果Java文件中有import包名则需要创建对应的包路径嵌套文件夹,并将Java文件放进嵌套文件夹中进行编译运行(更简单的方法是删除import)
2、编译运行出现字符集错误时需指定字符集:javac -encoding UTF-8 xxxx.java
从上述运行命令中看出当需要运行的单个java文件所依赖的第三方jar包过多时,运行命令会很长,找全依赖的jar包也很麻烦
二、普通的java项目打成jar包
第一步:File->Project structure->Artifacts
第二步:配置运行的主类
如果报错MANIFEST.MF已存在,请先删除
第三步:配置好主类后开始打包
三、maven项目打成jar包并使用cmd命令行运行
第一步:配置项目打包成jar包
<packaging>jar</packaging>
第二步:配置运行主类(这步很重要)
<build>
<finalName>excel-operate</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- 指定运行的主类 -->
<mainClass>com.learn.Main</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
综上所属即是使用cmd命令行运行单个java文件、jar包的方式