Java | IDEA生成Jar包及使用exe代理运行(附踩坑指南)

前言

本文主要讲述通过IDEA将Java代码生成Jar包,并使用一个工具代理以实现通过exe形式运行生成的Jar包,用到的工具链接附在文末,此外我还会讲讲可能会遇到的一些问题,如果你遇到了其它的问题,也欢迎多多交流,话不多说,准备开始~

生成Jar包

以下是本文所使用的示例代码:

import javax.swing.*;

/**
 * a demo application
 *
 * @author zjw
 * @createTime 2020/8/6 19:08
 */
public class Main {
    
    

    public static void main(String[] args) {
    
    
        JFrame frame = new JFrame("Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 150);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        JLabel label = new JLabel("Hello, world!", JLabel.CENTER);
        frame.add(label);
        label.setVisible(true);
    }

}

代码准备完毕后,先进行打包相关的配置。首先点击左上角File -> Project Structure -> Artifacts,然后按照如下图所示的顺序进行点击:

image-20200806194824564

然后在如下对话框中点击选择自己main方法所在类即可,选择完毕,直接点击OK

image-20200806195245316

点击OK后,再勾选下图所示的选项,即完成打包配置,可以发现项目src路径下,生成了一个META-IF文件夹:

image-20200806195636263

之后再点击顶部的build并选择打包项目,如下所示,就会发现项目里多了一个out文件夹,点击out -> artifacts -> 项目名_jar即可发现已经生成了jar包!!!

特别注意(尤其是项目中引入了第三方Jar包)

上文说过,在进行生成jar包配置后会生成一个META-IF文件夹,正常情况下都会有一个MANIFEST.MF文件,但是如果项目中引入了第三方jar包,在最终生成的jar包中可能会多出如下类似的文件(可以通过7-Zip等压缩工具打开jar包发现[jar本质就是压缩文件]):除了MANIFEST.MF文件,另外两个文件都需要被删除。

image-20200806201630343

那如果不删除,又会发生什么呢?我们先通过java -jar demo.jar进行测试,可以发现会出现以下报错:

image-20200806202144560

这也就是我们为什么需要删除META-IF文件内文件的原因,可以发现,在删除之后,再通过java -jar命令即可正确执行!

使用exe代替运行jar

下面我们就来看看如何如何通过exe来执行我们的jar包,在开始之前,首先创建一个文件夹demo,然后需要下载文末所提供的工具包,打开会发现以下目录包括两个文件:

image-20200806203103863

然后我们要做的就是将这两个文件复制到demo文件夹中,记得把上文得到的jar包也放在这里,此外还需要将项目使用的java版本对应的jre文件夹复制到这里,最终目录结构如下:

image-20200806203501454

然后我们需要打开launcher.cfg文件进行以下配置:

.
.\jre\bin\javaw.exe
-jar demo.jar

其中第一行对应demo.jar相对于launch.exe的位置,由于两个文件在同一目录下,故直接设置为.即可,第二行对应jre文件中javaw.exe的位置,第三行固定为-jar 你的jar包名即可,保存后,点击launch.exe可以发现大功告成!!!

image-20200806204115480

设置图标

可能很多人会觉得自带的launch.exe的图标不够好看,想设置自己的图标,下面就来讲讲如何设置自己的图标:

  1. 首先打开tool文件夹,然后打开icon文件夹,运行ResHacker.exe,进入主界面;

  2. 在左上角点击文件 -> 打开,选择launch.exe并点击打开;

  3. 选择左侧的图标 -> 1 -> 1030,然后右键单击1030,选择替换资源...,在弹出窗口中点击打开新图标文件,选择自己想设置的图标,然后点击替换按钮(图标文件可以是exe、dll、res、ico,该软件可以从exe、dll、res文件中抽取出图标);

  4. 选择文件 -> 另存为,存到项目目录下,直接点击launch.exe替换掉即可。

    由于一些原因,可能在以上操作后,图标没有立刻改变,但是你可以通过复制launch.exe文件到其它任意文件夹,会发现图标已经改变,但是复制到原本文件夹,图标仍无法改变,这时你可以试着重启一下电脑,会发现图标就改变了。此外附一个可以生成将一半的图片文件转为ico格式的网站:convertio

总结

本文大致介绍了使用IDEA生成jar包,并通过一个工具代理实现exe运行的方法,并介绍了一些可能会遇到的问题,如果有错误之处,欢迎交流指正,如何你在完成的过程中遇到了一些其它问题,也可以在评论区留言。

附件

  • 链接:https://pan.baidu.com/s/12fUOz-cBOArCsZgoIVGTJA
  • 提取码:k71z

猜你喜欢

转载自blog.csdn.net/qq_41698074/article/details/107849774