1.背景
前不久接到一个朋友的请求,让我帮他做个小程序处理一些工作上的事情,好歹作为java开发工程师,这点忙还是要帮的.不过马上遇到了一个问题,平时我们都是用IDEA或者eclipse运行的代码, 或者是web项目用tomcat运行的, 他现在这种小白肯定不能让他去装一个IDEA, 所以就遇到了jar包运行的问题.
2. maven项目pom.xml
上代码:
首先打包是要打成jar文件的
<packaging>jar</packaging>
这里需要用到maven的一个maven-shade-plugin
插件, 注意里面的main类的配置根据自己的情况修改
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<descriptors>
<descriptor>src/assembly/distribution.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.tooling</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<!--这里是你的main方法的类-->
<Main-Class>com.zgd.jar.App</Main-Class>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
3. main启动类
跟springboot一样,需要有一个main启动类 ,这里我打印了一个类似springboot的logo,生成器网上很多
package com.zgd.jar;
import com.zgd.jar.utils.MainExcelHandle;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* Hello world!
*
*/
public class App {
private static Logger logger = LogManager.getLogger(App.class);
public static void main( String[] args ) {
String s = "\n" +
" \n" +
" \n" +
" \n" +
" ,---, \n" +
" ,----, ,---.'| \n" +
" .' .`| ,----._,. | | : \n" +
" .' .' .' / / ' / | | | \n" +
",---, ' ./ | : | ,--.__| | \n" +
"; | .' / | | .\\ . / ,' | \n" +
"`---' / ;--, . ; '; | . ' / | \n" +
" / / / .`| ' . . | ' ; |: | \n" +
"./__; .' `---`-'| | | | '/ ' \n" +
"; | .' .'__/\\_: | | : :| \n" +
"`---' | : : \\ \\ / \n" +
" \\ \\ / `----' \n" +
" `--`-' \n";
System.out.println(s);
MainExcelHandle.splitExcel();
}
}
3. 写自己要执行的方法
我这里是
MainExcelHandle.splitExcel();
总之在main方法要执行那些方法,就看自己的需求了.
4. 打成jar包
最好现在main方法跑一遍看看有没有问题,然后用maven的install命令,打成jar包,在target文件夹下就可以找到XXX-1.0-SNAPSHOT.jar
5. 和jre放在一个文件夹
新建一个文件夹myapp
把jar包改个名,比如myapp.jar, 放到myapp文件夹中
然后找到自己的JRE文件夹, JDK文件夹里面也有JRE文件夹,如果当时安装java 的时候连JRE一起安装的话,有个单独的JRE文件夹
JRE文件夹复制到myapp文件夹中,JRE文件夹改个名jre1.8
6. bat文件运行
新建一个文本
@echo of
.\jre1.8\bin\java -jar myapp.jar
@pause
保存为start.bat
大功告成,双击bat试试吧
7 附:
1. jar转成exe运行
打成jar包以后log4j2日志的打印目录设置