GuiExe

2019-07-16 220 words 2 mins read


一、Netbeans打包Maven项目(采用的第2种方法)

  1. 生成主jar包和依赖lib文件夹 这种方式构建出来的 jar 包只包含你自己写的代码,而第三方依赖 jar 包都包含在 lib 文件夹里面,运行时需要把 .jar 包和 lib 文件夹放在同级目录运行。 在你项目的 pom.xml 文件中的 project->build->plugins 节点下面添加以下代码 ( mainClass 标签中的内容改成你的项目启动类):

    <!-- 打包第一种方式, 生成主jar和依赖lib文件夹 -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath>
                    <classpathPrefix>lib/</classpathPrefix>
                    <mainClass>com.wskfz.xmlrpctool.MainJFrame</mainClass>
                </manifest>
            </archive>
        </configuration>
    </plugin>
    <!-- 拷贝依赖的jar包到lib文件夹 -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.4</version>
        <executions>
            <execution>
                <id>copy</id>
                <phase>install</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>
                        ${project.build.directory}/lib
                    </outputDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
    </pre>
  2. 将所有依赖和主程序打成一个jar包 这种方式构建出来的 jar 包, 你自己写的代码和第三方依赖都在里面, 可以独立运行

    <!-- 打包第二种方式, 把所有依赖和主程序打成一个jar包 -->
    <plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-assembly-plugin</artifactId>  
        <version>2.3</version>  
        <configuration>  
            <appendAssemblyId>false</appendAssemblyId>  
            <descriptorRefs>  
                <descriptorRef>jar-with-dependencies</descriptorRef>  
            </descriptorRefs>  
            <archive>  
                <manifest>  
                    <mainClass>org.maizedna.tools.index</mainClass>  
                </manifest>  
            </archive>  
        </configuration>  
        <executions>  
            <execution>  
                <id>make-assembly</id>  
                <phase>package</phase>  
                <goals>  
                    <goal>assembly</goal>  
                </goals>  
            </execution>  
        </executions>  
    </plugin>  

    修改保存后, 在 NetBeans 中你的项目上右键 清除并构建 即可打包. 完成后在你项目文件夹的 target 文件夹下面即可看到你打出来的 jar 包. image

    原文参考链接:https://www.jianshu.com/p/d9b767a2a1b8


二、 将jar包转换为exe可执行文件

  1. 下载exe4j文件 地址:https://www.ej-technologies.com/download/exe4j/files
  2. 安装好后,打开exe4j 输入License,自行百度 image
  3. 点击next,选择“JAR in EXE”模式 image
  4. 点击next,设置程序名称和exe文件的输出路径,输出路径一定要设置成和jre一个路径 image
  5. 点击next,设置exe图标(只支持ico格式的图标,可以不设置) image 完成后点击左侧32-bit or 64-bit,勾选64位 image
  6. 点击next,先添加jar包,并点击Main class from后面的按钮,选择主Java文件 image
  7. 点击next,设置jre的版本限制信息,并点击如图位置 image
  8. 删除自带的JAVA_HOME和JDK_HOME信息,并添加jre文件夹信息,设置路径的相对位置,如图所示,否则打开文件时会提示错误信息 image
  9. 点击next,选择默认的VM image
  10. 后面的内容一直next即可 image

三、 将exe和jre进行打包成安装程序

按照上述方法打包的exe文件是不包含jre的,只能在已安装过jre的window电脑上运行。要满足没有安装jre的电脑也能运行的话,可以通过将jre和exe文件打包到一个安装程序中,这样只要执行安装操作后,就能直接运行了。

  1. 下载Inno Setup Compiler程序 链接地址:http://www.jrsoftware.org/isdl.php
  2. 安装完成后打开,进入欢迎页面并选择如下项 image
  3. 点击next,进入如下界面,填写安装包信息 image
  4. 点击next,直到出现如下页面,选择上面生成的exe可执行文件,以及设置jre所在的文件路径 image
  5. 点击next,知道出现如下页面,选择输出的文件路径和文件名等信息 image
  6. 点击next(如需配置web调用应用程序exe请看第四项第1条),一直到出现finish,完成制作。

    参考链接:https://www.jianshu.com/p/3d472e75634b?utm_campaign


四、 网页web调用本地应用程序(.exe)

  1. 在文件打包时将配置注册表信息写入 image 将如下代码直接粘贴在.iss文件最后一行,点击开始执行打包

        [Registry]
        Root: HKCR; Subkey: "ReportToolsClient"; Flags: uninsdeletekey
        Root: HKCR; Subkey: "ReportToolsClient"; ValueType: string; ValueName: ""; ValueData: "URL:maize"
        Root: HKCR; Subkey: "ReportToolsClient"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""
        Root: HKCR; Subkey: "ReportToolsClient\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName}"
    
    完成打包后,正常安装程序即可写入注册表。

    参考链接:https://blog.csdn.net/caokunchao/article/details/82532702

  2. 将以下内容保存为.reg文件运行,注意:换行必须保留

        REGEDIT4
    
        [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]"DisableRegistryTools"=dword : 00000000
    
        Windows Registry Editor Version 5.00
    
        [HKEY_CLASSES_ROOT\ReportToolsClient]
        "URL Protocol"="C:\\Program Files (x86)\\maize\\maize.exe"
        @="ReportToolsClientProtocol"
    
        [HKEY_CLASSES_ROOT\ReportToolsClient\DefaultIcon]
        @="C:\\Program Files (x86)\\maize\\maize.exe"
    
        [HKEY_CLASSES_ROOT\ReportToolsClient\shell]
    
        [HKEY_CLASSES_ROOT\ReportToolsClient\shell\open]
    
        [HKEY_CLASSES_ROOT\ReportToolsClient\shell\open\command]
        @="C:\\Program Files (x86)\\maize\\maize.exe"
    
    直接双击文件运行,或者通过命令行执行

    regedit /s *.reg。“/s”不管注册成功与否,都不显示提示框,即安静模式(一些病毒通过这样的方式修改注册表)。

  3. Web页面调用

    参考链接:https://blog.csdn.net/byxdaz/article/details/55225822



author

Authored By WUHAOTIAN

A gentleman should always strive to improve himself

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now
This website uses cookies to ensure you get the best experience on our website. Learn more Got it