精华内容
下载资源
问答
  • Python打包exe

    万次阅读 2020-01-06 23:50:37
    1.安装 https://pypi.org/project/PyInstaller/ pip install PyInstaller 2.文档 ... ...pyinstaller -F -w filepath ...参数F:打包为一个exe,不加生成文件夹 参数w:后台运行,不加前台运行(会有黑窗口...

    1.安装

    https://pypi.org/project/PyInstaller/

    pip install PyInstaller

    2.文档

    https://pyinstaller.readthedocs.io/en/stable/

    3.使用

    pyinstaller -F -w filepath

    参数F:打包为一个exe,不加生成文件夹

    参数w:后台运行,不加前台运行(会有黑窗口)

    参数filepath:需要打包的Python文件路径

    执行命令后会生成两个文件夹build、dist,双击dist目录下的exe就能后台运行了。

    pyinstaller会自动添加依赖,举例说明:

    项目目录结构如下:

    main.py

    inputview.py

    find.py

    listview.py

    其调用关系是 main.py-->inputview.py-->find.py-->listview.py

    此时,只需要打包main.py即可,其他依赖会自动添加至exe。

    4.打包图标

    ico图标生成:http://www.ico51.cn/

    a.准备ico图标(注:不能简单修改后缀,否则报错,最后两个参数为文件路径)

    b.命令:pyinstaller -F -w -i config.ico QQ.py

    5.高级用法

    运行命令: pyinstaller filepath 后,会在当前目录下生成.spec文件,可对该文件进行配置,实现定制化打包。

    a.需求:主程序导入了配置文件config.py,打包默认将所有依赖添加至exe,但config.py后续要求是可配置的,不应该一起打包,此实现如下:

    pyinstaller filepath --> *.spec文件

    编辑修改.spec 添加排除规则 excludes=['config']

    重新打包 pyinstaller *.spec文件

    将config.py复制至dist目录,整个dist目录就是打包好的可配置运行环境,运行dist中的exe,即可运行。

     

     

    展开全文
  • Python打包exe文件方法汇总【4种】

    万次阅读 多人点赞 2018-10-21 22:15:11
    title: Python打包exe文件方法 copyright: true top: 0 date: 2018-08-11 21:08:21 tags: 打包 categories: Python进阶笔记 permalink: password: keywords: description: 使用py2exe,pyinstaller,cx_Freeze,...

    title: Python打包exe文件方法
    copyright: true
    top: 0
    date: 2018-08-11 21:08:21
    tags: 打包
    categories: Python进阶笔记
    permalink:
    password:
    keywords:
    description: 使用py2exe,pyinstaller,cx_Freeze,nuitka对python文件进行打包,尝试进行混淆代码。

    “乔治是世界上最后一只平塔岛象龟,而我是世界上最后一个源家后裔,最后一只平塔岛象龟应该为了种族不灭努力地繁殖后代,最后一个源家后裔应该重振家族在黑道中的威望,但是乔治只是想回自己的水坑里去打滚,而我只是想去天体海滩上卖防晒油。”源稚生盯着恺撒的眼睛,“我就是这种人,其实蛇岐八家的黑道事业和秘党的使命对我来说都不重要,我的人生理想就是去卖防晒油。我跟你叔叔不是一种人。”

    Python作为解释型语言,发布即公开源码,虽然是提倡开源但是有些时候就是忍不住想打包成exe,不仅仅是为了对代码进行加密,而是为了跨平台。防止有些没有安装py环境的电脑无法运行软件。

    目录对python代码打包成exe的方式有4种,py2exe,pyinstaller,cx_Freeze,nuitka,分别对以上4种方法介绍,欢迎纠错和提供新的办法。

    py2exe

    介绍

    py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。

    优点:

    1. 可以把python打包成exe

    缺点:

    1. 打包好的 exe只能在相同的系统下运行,比如你在XP系统用py2exe打包好的exe只能在XP上运行,在win7上肯定有问题,而且也是存在在别的XP机子上也可能不能运行,因为一些别的机子可能会缺少dll文件什么的,作者我当时之所以抛弃py2exe 也是因为这个原因;

    2. 打包的文件也需要打包同exe下的dll,和一些库的压缩包,不然exe根本跑不起来

    3. 打包时候报始终报RuntimeError: BeginUpdateResource错误,就需要拷贝dll文件。C:\WINDOWS\system32\python27.dll复制到dist目录

    4. 总之毛病一大堆,基本上已经舍弃了

    使用

    下载地址

    安装好后,准备进行打包

    准备一个文件x.py,这个x.py就是想要打包成exe。

    然后这x.py同目录下新建一个setup.py,内容如下:

    #coding=utf-8
    from distutils.core import setup
    import py2exe
    includes = ["encodings", "encodings.*"]
    #要包含的其它库文件
    options = {"py2exe":
      {
        "compressed": 1, #压缩
        "optimize": 2,
        "ascii": 1,
        "includes": includes,
        "bundle_files": 1 #所有文件打包成一个exe文件
      }
    }
    setup (
      options = options,
      zipfile=None,  #不生成library.zip文件
      console=[{"script": "x.py", "icon_resources": [(1, "Q.ico")] }]#源文件,程序图标
    )
    

    然后这cmd窗口下运行:

    python setup.py py2exe
    

    py2exe使用方法 (含一些调试技巧,如压缩email 类)

    pyinstaller

    PyInstaller除了win32平台外还支持Linux,Unix平台.py2exe的用法在前面的博文里已经有了,现在看看PyInstaller,pyinstaller是目前应用最多的python打包工具,也是我最常用的。

    PyInstaller本身并不是Python模块,所以安装时随便放在哪儿都行。

    优点:

    1. 可将python文件转成可执行文件
    2. 跨平台
    3. 输出的可以是单一目录,也可以是一个单独的打好包的可执行文件。py2exe貌似输出目录。
    4. 智能支持python的第三方模块如PyQt,外部数据文件等
    5. 支持EGG格式文件
    6. 可执行文件可以用UPX压缩,二进制压缩方式
    7. 支持控制台和视窗两种方式。
    8. 可以选择exe文件的图标 (Windows only)
    9. 支持 COM server (Windows only)

    缺点:

    1. import导入的问题

    pyinstaller是很智能的,只要指定了入口py文件,那么它就会根据代码自动查找需要导入的包。但是隐式导入的话,平常运行是没有问题的,举例:

    # test1.py
    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker
     
     
    DB_CONNECT_STRING = 'mysql+pymysql://root:123456@localhost/study'
    engine = create_engine(DB_CONNECT_STRING, echo = False)
    DB_Session = sessionmaker(bind = engine)
    session = DB_Session()
     
    print('this is my test')
    

    运行这个ORM库的初始化引擎,是没有问题的,在console得到结果:
    this is my test

    那么我们开始打包,使用最简单的pyinstaller test1.py。打包完成后,在当前目录下有个dist文件夹,进入dist下的test1文件夹,然后打开cmd,运行这个exe,我们就会发现:

    提示: no model named ‘pymysql’

    这是怎么回事呢?那么问题来了,sqlalchemy这个库在初始化的时候是不需要显示导入引擎库的,它自己有一个create_engine()的函数来初始化,这个字符串是使用者根据规则来自己填写的。其实解决的方法很简单,我们只要在显式导入pymysql这个库即可。现在我们导入这个库:

    import pymysql
    

    重新打包一遍(重新打包的时候记得删除掉spec文件,否则会有缓存,或者是加上–clean选项清除掉),再次运行,现在就没有这个问题了。

    1. 多进程打包的问题

    官方的CPython存在一个GIL锁,这个锁的存在有很多优点,很多库都是线程安全的,单线程执行的效率也高。在python早期的一个版本中取消掉了GIL,代之以高粒度的锁来实现多线程,但是实际应用中单个线程的效率大大降低。故后来又将GIL这个锁还原回去,所以至今的python2也好还是python3中都会有这个锁。但是这个锁有很大一个问题,那就是效率问题,它导致了python仅仅只能利用一个core来进行数据的计算。所以后面为了弥补这个GIL带来的问题,专家们设计了multiprocessing库,gevent库等。前一个是多进程库,为了解决python用于数据密集型处理的情况;后一个用于异步IO处理的情况,基本原理就是在CPU时钟之间来回切换,简单的例子就是爬虫程序爬取网页的时候。假如有10个url,我们都要去GET它,实际上网络之间的延迟是大大高于计算机内部的,那么这个时间内计算机就切换到下一个。

    有时候运用多进程是必须的,这个替代不了,哪怕它占用资源很多。

    使用

    安装:

    pip install pyinstaller
    

    使用方法(例子):

    pyinstaller -D -p F:\Python27\Lib -i logo.ico mian.py
    

    -D:打包成多个文件
    -p:指定python安装包路径
    -i:指定图标,我的图标放在同目录下
    mian.py:要打包的文件,和图标放在同目录下了

    -D与-F一一对应,-F是打包成一个单独的文件。最后一排加上–noconsole,就是无窗口运行。

    如果py程序是多进程的话,使用pyinstaller打包会出现错误,这个时候只要加上一行代码

    在:
    if name==‘mian’:
    #新增
    multiprocessing.freeze_support()

    即可

    有的时候你加上图片后打包会出错,这是因为图标里面的格式出错了,需要用图片编辑软件重新对图片内部大小进行设置,这个百度一下吧~

    如果要加密混淆代码(其实没有用,一样可以反编译出你的源代码,但是聊胜于无吧)

    加上一行 --key=asfweakjhfksafkasdkdbas随便几个字符串

    好像要安装依赖包,根据提示安装即可

    cx_Freeze

    python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller。py2exe恐怕是三者里面知名度最高的一个,但是同时相对来说它的打包质量恐怕也是最差的一个。pyinstaller打包很好,但是操作工序较为复杂,推荐cx_freeze,可以通过pip install cx-freeze 安装。–这是别人的描述,其实我觉得pyinstaller其实挺简单的

    使用

    安装方法:

    1. 打开cmd,输入pip install cx-freeze 后,会发现在python的Scripts文件夹下生成了三个文件
    2. 然后在cmd中,切换到Scripts路径下,输入 python cxfreeze-postinstall,会发现Scripts文件夹下又多了.bat文件,此时已经安装成功
    3. 继续在cmd下尝试输入 cxfeeeze -h 验证下,显示成功。

    提示:直接通过 pip install cx-freeze 安装,仍然出现错误时(找不到文件),最好去官网:网址手动下载相应版本的cx-freeze文件,放在Scripts文件夹下,手动双击安装,然后再运行cxfreeze-postinstall。(例如:我的python版本是3.4.3,下载cx_Freeze-4.3.3.win-amd64-py3.4的文件。注意,版本不对无法安装!)

    在cxfreeze的安装目录下即\Python34\Scripts,添加一个文件cxfreeze.bat(可用记事本)cxfreeze.bat内容如下:

    @ echo off
    C:\Python34\python.exe C:\Python34\Scripts\cxfreeze %*
    

    在该目录下输入czfreeze -h也可以查看安装情况(用pip install cxfreeze就可直接安装改第三方库)

    打包方法

    打包文件时要在Scripts文件夹路径下操作,文件的路径最好是绝对路径。例如:将 G 盘的 hello.py 打包到 G 盘的 123文件夹下:cxfreeze g:\hello.py --taget-dir g:\123 或者 cxfreeze g:\hello.py --taget-dir g:\123 --base-name=Win32GUI。加上–base-name=Win32GUI可以在运行exe时去掉cmd黑框。

    具体操作:

    首先在命令提示符中使用cd命令转换到所需要转换的python文件的目录中,因为转换后的dist文件夹会出现在命令提示符的当前目录中

    然后输入:

    cxfreeze --init-script=C:\Users\tangc\Desktop\alien_invasion\alien_invasion.py alien_invasion.py
    
    --init-script=后接绝对路径
    

    如果你的程序中有图片等资源,是需要根据程序中的相对路径加入到dist文件中,也要在.exe同目录中加入images的文件夹(图片资源)

    如果原.py程序使用了图片等素材,并且添加图片是相对路径(同一个文件夹下可以不使用绝对路径),打包文件后,需要将图片等素材拷贝一份放在打包后的文件夹下,否则运行.exe程序会找不到图片素材。

    如果原.py程序使用图片添加的是绝对路径,在本地电脑上运行时可能不会发现错误。但是你将打包后的文件发给另一台机器,运行.exe程序会报错,大概意思是“根据你写的绝对路径找不到图片等素材”,即使你在文件夹下拷贝了素材,但是绝对路径也是错误的,所以,最好使用上一种方法。

    注意:

    • 只能指定一个要打包的模块,也就是启动模块

    • 发布后,可执行文件执行路径不能有中文(最好也不要有空格)

    • 启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果

        if __name__=='__mian__':
      
    • 将exe放到其他机子上运行,弹出“找不到msvcr100.dll“ ,手动将”msvcr100.dll“拷贝到dist目录下即可

    • 要去掉exe里的后面黑色控制台窗口就在前面的命令改成:
      cxfreeze C:\Users\restartRemote.py (需打包文件路径) –target-dir D:\pyproject (存放exe的目标文件夹路径)–base-name=win32gui

    nuitka

    Nuitka直接将python编译成C++代码 ,再编译C++代码产生可执行文件,完全不存在反向解析的问题,非常安全,而且由于可执行文件由C++编译而来,运行速度也会获得提升。

    但是我在打包中发现了一个文件,那就是在另一台电脑上无法运行…并且实际编译时需要近20分钟,编译的时候cpu持续100%

    不过如果只是自己的电脑上运行的话,还是挺好使的

    官方文档

    注意nuitka对python的某些语法有专门要注意的地方

    下载地址

    下载完后会提示安装编译c++代码的软件,使用的是gcc

    安装好有会有一个MinGW64的文件夹,比如我要打包一个back.py的文件,把这个py文件放在哪个目录下,常用命令如下

    python -m nuitka --recurse-all --standalone cc.py
    
    python -m nuitka --standalone back.py
    
    # 可以用的打包方式
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --remove-output --plugin-enable=enum_compat back.py
    # 带图标并且有窗口
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --remove-output --icon=logo.ico --plugin-enable=enum_compat back.py
    # 不带窗口不带图标
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --remove-output --plugin-enable=enum_compat --windows-disable-console back.py
    
    # 不删除辅助文件夹
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --icon=logo.ico --plugin-enable=enum_compat back.py
    
    # 其他可运行
    
    
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --standalone --remove-output --icon=logo.ico --plugin-enable=enum_compat back.py
    

    在编译的时候大概要挺长时间,并且cpu持续暴涨。

    速度…感觉确实变快了点…

    代码混淆

    你可以自己写混淆器,虽然说是防君子不防小人,但是…罢了不提了…

    我使用的是一个在线的代码混淆器,猜测代码会上传到那个服务器上面,所以用或不用看你的需求了

    地址

    注意:代码规范符合python3

    欢迎关注公众号:【安全研发】获取更多相关工具,课程,资料分享哦~
    在这里插入图片描述

    展开全文
  • HTML 一键打包exe

    2017-10-27 16:16:38
    HTML 一键打包exe~~HTML 一键打包exe!!HTML 一键打包exe~~
  • 打包exe 运行测试 资源文件位置 本文导读 很多时候把应用打包成可执行Jar文件,还是美中不足,因为整个应用被生成了一个jar文件 可以把Jar再转成exe应用,本文讲解两种方式 javafxpackager 简 述 从 JDK1.7u6...

    目录

    本文导读

    javafxpackager

    简 述

    jar 转 exe

    运行测试

    注意事项

    IDEA 自动生成

    项目代码

    打包 exe

    运行测试

    资源文件位置


    本文导读

    1、很多时候把应用打包成可执行Jar文件,还是美中不足,因为整个应用被生成了一个 jar 文件

    2、可以把Jar再转成exe应用,本文讲解两种方式

    javafxpackager

    简 述

    1、从 JDK1.7u6 开始 Java FX 内置在Java SE中,同时为Javafx 提供了打包工具-javafxpackager.exe,如下所示。

    2、这是推荐方式

    3、此种方式适用于任何可执行Jar应用,包括Java SE 与Java FX,也无论是IDEA生成的,还是Eclipse、MyEclipse生成的,或是其它方式生成的

    jar 转 exe

    1、以《IDEA 打包 可执行 Jar 程序》中 "Java SE应用"打包生成后的"china.jar"为例继续进行转换为exe应用

    2、如下所示,现在china.jar可以放到任何安装了Java 运行环境的电脑上运行了,现在开始将它转为exe应用。

    3、新建"jar"、"exe"两个目录,名字自己取,建议不含中文和空格就行,将"china.jar"放入到"jar"目录中

    使用命令行:javafxpackager -deploy -native image -appclass com.lct.main.MainApp -srcdir E:/wmx/logs/jar -outdir E:/wmx/logs/exe -outfile chinaApp -name china

    参数详解,可以直接在cmd输入"javafxpackager",然后回车,可以看到所有参数信息

    -deploy:打包程序根据其他参数生成 jnlp 和 html文件

    -native:生成自包含的应用程序包 (如果可能), 如果指定了类型, 则只创建此类型的包,所支持类型的列表包括: installer, image, exe, msi, dmg, rpm 和 deb。

    -appclass:要执行的应用程序类的限定名称,即程序入口类的全路径。

    -srcdir:待打包文件的基目录。

    -outdir:要将输出文件生成到的目录的名称。

     -outfile:生成的文件的名称 (不带扩展名)。

    这样生成好的文件就打包到l"exe"目录中了,下面的"china.jar"其实就是咋们打包的源文件,也就是"jar"目录下的可执行jar文件,需要的exe应用在"bundles"目录中

    需要的就是这个"china"目录,转换好的exe应用就在里面,可以将"china"放到任何安装了Java运行环境的电脑上运行

    运行测试

    注意事项

    1、使用“javafxpackager”方式生成的exe程序包,虽然可以放到任意安装了Java环境的电脑上运行,但是exe放置的路径不能含有中文,否则运行失败含有空格没有关系

    2、Java程序是在Java JVM中运行中的,所以跨平台,无论是64位还是32位操作系统都没有问题,而 Java JDK是区分系统的,而且还有64位于32位之分,不同的系统和位数就得下载安装不同的版本型号的Java JDK。

    如果使用64位的Java JDK将Jar编译成exe,则此exe程序默认只能在64位Windows系统中运行;如果想要在32位windows系统中运行,则可以在32位的电脑系统上安装32位的Java JDK,然后重新编译即可。

    IDEA 自动生成

    1、IDEA可以将Java Web项目直接转成war包,可以将Java SE 直接转成 Jar包,同理 IDEA 可以直接将Java FX转成exe应用

    2、以《IDEA 打包 可执行 Jar 程序》中 "Java FX应用"继续进行讲解说明

    项目代码

    import org.apache.commons.lang3.StringUtils;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.ResourceBundle;
    /**
     * Created by Administrator on 2018/6/29 0029.
     * 日志工具类
     */
    public class LogWmxUtils {
    
        private static final String LOG_DIR_PATH;
    
        static {
            ResourceBundle resourceBundle = ResourceBundle.getBundle("system");
            LOG_DIR_PATH = resourceBundle.getString("logDirPath");
        }
    
        /**
         * 写入日志
         *
         * @param message
         */
        public static final void writeLine(String message) {
            try {
                if (StringUtils.isNotBlank(message)) {
    
                    File logDir = new File(LOG_DIR_PATH);
                    if (!logDir.exists()) {
                        logDir.mkdirs();
                    }
                    SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
                    SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
                    String logName = simpleDateFormat1.format(new Date());
                    String messageHead = simpleDateFormat2.format(new Date());
    
                    File logFile = new File(logDir, logName + ".log");
                    FileWriter fileWriter = new FileWriter(logFile, true);
                    fileWriter.write(messageHead + ":" + message + "\r\n");
                    fileWriter.flush();
                    fileWriter.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    import utils.LogWmxUtils;
    public class Main extends Application {
        @Override
        public void start(Stage primaryStage) throws Exception {
            Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
            primaryStage.setTitle("2018 China");
            primaryStage.setScene(new Scene(root, 300, 275));
            primaryStage.show();
        }
        public static void main(String[] args) {
            LogWmxUtils.writeLine("Application startup");
            launch(args);
        }
    }
    

    打包 exe

    经过了上面的javafxpackager打包之后,这里就更加简单了

    这和使用javafxpackager打包基本一样,同样IDEA会先将应用打包成可执行Jar文件,如下所示的"USA.jar",在通过它来进行转换,真正需要的在"bundles"目录中

    下面的"USA"目录才是真正需要的东西,可以拷贝到任何安装了Java环境的电脑上运行

    运行测试

    资源文件位置

     

    展开全文
  • Python打包exe环境

    2017-09-29 15:20:41
    Python打包exe环境,经过测试,可在win10x64,xp-x86上面安装使用,打包出来的exe可在32位系统下运行, python2.7.14 32位,pywin32,pyinstaller-2.0 ,upx308w
  • java打包exe工具

    热门讨论 2010-04-21 23:26:43
    exe4j java打包exe这个工具还不错
  • 在用exe4j打包后生成的exe应用,部分界面功能页面乱码,打包过程中设置编码使其不乱码
  • 一、javafx打包成jar   ...javafxpackager是javafx提供的打包工具,从jdk1.7开始就包含这个工具了,它在 jdk 的 bin 目录下,javafxpackager命令既可以打包成jar也可以打包exe。 ● 用javafx...

    一、javafx打包成jar

     

    最近在搞东西,用JAVAFX写了个工具,写完后,需要打包成exe或jar包运行,有以下几种方式:

     

    1.javafxpackager

    javafxpackager是javafx提供的打包工具,从jdk1.7开始就包含这个工具了,它在 jdk 的 bin 目录下,javafxpackager命令既可以打包成jar也可以打包成exe。

    ● 用javafxpackager打包成jar

    javafxpackager -createjar -appclass com.fendo.xxx.testController -srcdir classes -outdir archive -out file Test.jar
    

    ● 用javafxpackager打包成exe

    javafxpackager -deploy -appclass com.fendo.xxx.testController -native image -srcdir archive -outdir deploy -outfile Test

    参数说明

    -appclass Test 
    还是指定应用程序主类

    -srcdir archive 
    指定源目录,这里指定的是我们刚才打包存放 jar 文件的目录

    -outdir deploy 
    指定输出目录,名字随你喜好

    -outfile Test 
    指定输出文件名,名字随你喜好

    -native image 
    指定输出的本地程序类型,image 的话只生成一个启动器(exe),也有别的选项可以生成安装程序等等(需要第三方工具)

    -Bruntime=$JAVA_HOME/jre(如果不加这个参数会自动选择本地的jdk) 
    指定打包出来的独立程序使用的 jre 的位置,这里用的是本人的 jdk 自带的 jre,如果你用的是 cmd 的话写成 %JAVA_HOME%\jre 
    也可以指定别的 jre,但是要小心保证 javapackager 所在的 jdk 和所使用的 jre 的位数相同(即都是32位或都是64位,最好版本也相同,最最好就直接用 jdk 自带的 jre) 
    这样打包就完成了,可以自己运行以下试试

     

    由于项目是用maven构建的,依赖了很多其他的jar包,我用该方法打包成的jar,依赖的很多jar包都没有打进来。

     

    2.IDEA打包

     

    IDEA打包如下,File下选择Preject Structure

    设置以下几处地方

    在Build下

    这样就可以打成jar包了。

     

    3.通过maven插件javafx-maven-plugin打包

     

    在pom中加入依赖:

            <plugin>
              <groupId>com.zenjava</groupId>
              <artifactId>javafx-maven-plugin</artifactId>
              <version>8.8.3</version>
              <configuration>
                <vendor>analysis</vendor>
                <mainClass>com.fendo.analysis.AnalysisStart</mainClass>
              </configuration>
            </plugin>

    然后运行命令:

    mvn jfx:jar

    会在target/jfx/app目录下生成一个jar包和一个lib目录

    点击jar包就可运行。

     

    4.通过maven-assembly-plugin插件

     

    Maven生成jar包有以下2种方式:


    1.打包项目依赖的所有jar 生成单个jar包
    2.生成jar包 复制所需的依赖jar包到lib目录

    第一种方式比较好,第二种方式,在exe4j中进行打包的话会出现Caused by: java.lang.NoClassDefFoundError这种错误,这种错误就是没有将依赖打包进去导致的,所以最好打包成单个jar包。

    在POM.XML中加入以下依赖

            <plugin>
              <artifactId>maven-assembly-plugin</artifactId>
              <configuration>
                <descriptorRefs>
                  <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                  <manifest>
                    <mainClass>com.fendo.analysis.AnalysisStart</mainClass>
                  </manifest>
                </archive>
              </configuration>
              <executions>
                <execution>
                  <id>make-assembly</id>
                  <phase>package</phase>
                  <goals>
                    <goal>single</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>

    在当前项目下执行mvn assembly:assembly或install -Dmaven.test.skip=true, 执行成功后会在target文件夹下多出一个以-jar-with-dependencies结尾的JAR包. 这个JAR包就包含了项目所依赖的所有JAR的CLASS.

     

    二、javafx打包jar成exe

     

    通过上面的几种方式打包好jar包之后,确保点击能运行,然后就是打包成exe,我这里用的是exe4j,首先去exe4j官网下载安装包,然后安装exe4j

     

    需要注意的是exe4j 6.0 需要的jdk版本为1.8及以上,安装好之后,如下

    点击Next,选择JAR

    输入程序名称,和输出目录

    添加jar包

    然后设置启动类

    设置运行环境

    到这个页面之后点击Next,就会生成exe文件。

     

    三、exe4j将lib目录也打进jar包去

     

    如果打包的jar是这种类型的如何通过exe4j打包成exe了?

    这种也很简单,在第二步的时候,换个打包模式

    在这一步时,先加载jar,然后加载lib目录就行了,其余的和上面的几乎一样

     

    展开全文
  • exe4j打包--jar打包exe

    千次阅读 2017-01-12 17:00:41
    本文重点介绍如何将我们写的java代码打包成在电脑上可以运行的exe文件。这里只介绍直接打包exe的方法,至于打包exe安装包下节介绍test软件准备exe4j集合包下载地址(下节内容也在这里) 今天我们下载好上面的内容...
  • 用python打包exe应用程序-PyInstaller

    万次阅读 多人点赞 2020-12-09 08:35:00
    1、PyInstaller简介PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的...
  • Python打包exe程序

    千次阅读 2021-04-17 12:15:59
    安装pyinstaller pip3 install pyinstaller -i ... 打包exe,注意-p对应包路径 E:\PythonStart\DataProcess> pyinstaller -F -p E:\PythonStart\DataProcess\venv\L ib\site-packages main.py 打包成功 ...
  • .NET 打包EXE工具ILMerge

    2015-09-06 11:24:57
    该工具可以把exe和多个dll文件打包成一个exe执行文件。这里面提供了DOS窗口命令和GUI图形操作界面,操作简单。
  • Python打包exe并不闪退

    千次阅读 2018-11-01 14:00:33
    Python打包exe 近期自己做了一个小demo要分享给朋友,但是朋友又没有python环境,所以打包成exe。下面就记录一下自己打包exe方法 工具 Python 3.6.2 Pyinstaller 3.3.1 安装Pyinstaller 直接pip安装,没什么...
  • 很好用的批处理打包exe软件,还是单文件。自己写的批处理打包下,共享给别人还能一定程度保护自己的著作权
  • exe4j打包工具,破解工具
  • Electron安装及打包exe

    万次阅读 多人点赞 2019-06-08 00:48:22
    一、安装node.js 二、安装淘宝镜像的包命令行管理工具cnpm ...六、打包exe 1. 全局安装打包神器electron-packager 2. 开始打包 (1) 在package.json文件中配置(推荐) (2) 直接在打包命令中设置参数
  • 主要介绍了解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python+QT打包exe

    千次阅读 2019-09-25 07:26:46
    接手了一个windows项目,最终用python+QT完成,并打包exe可执行程序,遇到很多问题,现总结一下。 安装pyinstaller pyinstaller包可以很方便的将python程序打包成windows下面可执行的exe程序,如果还未安装,需要...
  • Python常用的两种打包exe的方法

    万次阅读 热门讨论 2019-09-16 22:44:31
    pyinstaller -F xxx.py 打包exe命令,但是会有黑窗口 pyinstaller -F -w xxx.py去除黑窗口 2 py2exe python setup.py py2exe打包命令,整个dist文件夹一起发布。 setup.py编写: from distutils.core imp...
  • JAVA打包EXE的工具

    2009-01-03 14:15:48
    JAVA打包EXE的工具 使用它后,JAVA做出来滴东东也可以直接生成EXE可执行文件 JAR TO EXE
  • python程序打包exe

    万次阅读 2019-06-11 18:28:30
    文章目录python文件说明py打包exe(pyinstaller应用)安装使用一些问题 python文件说明 .py文件:python源码,需要安装python和相关库才能运行 .pyc文件:python解释器可识别的二进制码(源码不可见),需要安装...
  • python打包exe 可执行文件 。教程 打包出来的文件,238M.原因是 anaconda里包含了太多我们不需要的包 建立虚拟环境打包 Pipenv 是一款管理虚拟环境的命令行软件,简单来讲,它可以创建一个只在某个目录下的局部 ...
  • 今天小编就为大家分享一篇python带参数打包exe及调用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 4.pyinstaller 打包exe,python在程序运行没问题,在打包后的exe报导入的包错误情况下例如:No module named cx_Oracle,打包生成exe方式
  • Unity打包exe文件

    千次阅读 2020-07-03 15:21:56
    unity打包后的文件包含 exe data文件夹以及一个UnityPlayer.dll 在此通过以下步骤 打包成一个可直接运行的exe文件 1. 选择文件 选择这三个文件 进行压缩 2. 修改压缩文件名 3. 高级选项设置 4.图标选择 可以事先...
  • 这是GUI项目打包EXE文件的总结: 知识点:Eclipse 打包jar(包含第三方架包) Eclipse 插件fat_jar的运用 和使用方法 exe4j 打包的具体步骤
  • Python3.6打包exe

    千次阅读 2018-10-11 21:13:31
    写了一个Python小程序程序(Python3.6, Windows)给公司内部使用,但是需要用户安装Python环境,于是将Python程序打包exe程序。 一开始使用PyInstaller,但是因为程序里面用到了多进程(multiprocessing),所以...
  • exe4j,64位和32下载,将java运行程序打包成jar,为了安全性防止对编译后的class文件进行反编译,可以将jar文件打包exe的可运行文件,通过exe4j工具轻易完成
  • electron 打包exe图标异常问题

    千次阅读 2019-07-26 10:23:53
    electron打包exe图标异常 我们都知道 在使用electron 打包成exe的时候使用的是使用 ico 来打包 官方推荐大小是 256*256 但是我是我们应用的时候发现图标并不能正确的显示 如下: 为此我打开了electron的官方图标 ...
  • 使用exe4j打包exe

    千次阅读 2018-06-07 14:55:51
    原文地址:https://blog.csdn.net/qq_20473985/article/details/53186216首先,需要下载一个exe4j的软件,网址:http://www.softpedia.com/get/Authoring-tools/Setup-creators/exe4j.shtml。现在主要说一下怎么打...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,744
精华内容 41,497
关键字:

网址打包exe