工作中有时候偶尔写一些工具类、小程序,可是java程序员制作一个可运行jar实在折腾,利用idea开发环境,可以快速打包自己的可运行jar。具体怎么操作呢?
完成java代码:
/**
* 测试窗口
* @author binbin
* @date 2023/9/27 10:29
*/
public class InfoFrame extends JFrame {
public InfoFrame() {
setTitle("System Information");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
//居中显示
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screenSize.width - getWidth())/2, (screenSize.height - getHeight())/2);
//初始化菜单
JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("帮助");
JMenuItem exitItem = new JMenuItem("退出");
exitItem.addActionListener(e -> {
System.exit(0);
});
menu.add(exitItem);
bar.add(menu);
setJMenuBar(bar);
//初始化系统信息
JTextArea infoTextArea = new JTextArea(6, 10);
infoTextArea.setText(getSystemInfo());
infoTextArea.setEditable(false);
add(new JScrollPane(infoTextArea));
}
private String getSystemInfo() {
StringBuffer b = new StringBuffer();
b.append("系统系统:").append(System.getProperty("os.name")).append("\r\n");
b.append("系统版本:").append(System.getProperty("os.version")).append("\r\n");
b.append("系统架构:").append(System.getProperty("os.arch")).append("\r\n");
b.append("用户名称:").append(System.getProperty("user.name")).append("\r\n");
b.append("用户主目录:").append(System.getProperty("user.home")).append("\r\n");
b.append("当前工作目录:").append(System.getProperty("user.dir")).append("\r\n");
return b.toString();
}
}
public class App
{
public static void main( String[] args )
{
EventQueue.invokeLater(() -> {
new InfoFrame().setVisible(true);
});
}
}
代码结构如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>org.hbingroupId>
<artifactId>infoartifactId>
<version>1.0-SNAPSHOTversion>
<name>infoname>
<url>www.binbin.orgurl>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>1.8maven.compiler.source>
<maven.compiler.target>1.8maven.compiler.target>
properties>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.11version>
<scope>testscope>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-assembly-pluginartifactId>
<version>3.2.0version>
<configuration>
<archive>
<manifest>
<mainClass>org.hbin.AppmainClass>
manifest>
archive>
<descriptorRefs>
<descriptorRef>jar-with-dependenciesdescriptorRef>
descriptorRefs>
configuration>
<executions>
<execution>
<id>make-assemblyid>
<phase>packagephase>
<goals>
<goal>singlegoal>
goals>
execution>
executions>
plugin>
plugins>
build>
project>
执行maven package命令,target目录将生成一个以jar-with-dependencies结尾的可直接执行jar。
运行命令:
> java -jar info-1.0-SNAPSHOT-jar-with-dependencies.jar
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-javadoc-pluginartifactId>
<executions>
<execution>
<id>attach-javadocsid>
<goals>
<goal>jargoal>
goals>
<configuration>
<additionalJOption>-Xdoclint:noneadditionalJOption>
configuration>
execution>
executions>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-source-pluginartifactId>
<executions>
<execution>
<id>attach-sourcesid>
<goals>
<goal>jargoal>
goals>
execution>
executions>
plugin>
下次再有测试、运营或者其他部门的同事找你做工具,知道怎样快速制作可执行jar了吧?