如何使用 Pyinstaller 捆绑 .jar 文件

2024-02-14

你怎么获得py安装程序 http://www.pyinstaller.org将 .jar 文件捆绑为使用它们的 python 项目的档案?

例如,要制作一个 exe 文件(我正在使用pyjnius http://pyjnius.readthedocs.org/en/latest/用于处理sikuli-独立罐子 https://code.google.com/p/sikuli-api/):

# test.py
import os
import sys

# set the classpath so java can find the code I want to work with
sikuli_jar = '/sikuli-api.standalone-1.0.3-Pre-1.jar'
jarpath = os.path.dirname(os.path.realpath(__file__)) + sikuli_jar
os.environ['CLASSPATH'] = jarpath

# now load a java class
from jnius import autoclass
API = autoclass('org.sikuli.api.API')

Pyinstaller 创建 (一个文件夹) 执行程序:

pyinstaller -d test.py

但据我所知,该 jar 并未捆绑,并且 exe 无法访问unless你手动将其放在Pyinstaller生成的文件夹中

根据pyinstaller手册 http://www.pyinstaller.org/export/d3398dd79b68901ae1edd761f3fe0f4ff19cfb1a/project/doc/Manual.html?format=raw:

“CArchive 包含您想要塞入其中的任何内容。它非常丰富 就像 .zip 文件一样。”

然后我尝试编辑之前自动生成的 test.spec文件:

jar = 'sikuli-api.standalone-1.0.3-Pre-1.jar'
jar_path = 'C:\\Python27\\Lib\\site-packages\\sikuli-0.1-py2.7.egg\\sikuli\\' + jar
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               [('sikulijar', jar_path, 'PKG')],
               strip=None,
               upx=True,
               name='test')

我尝试根据此规范文件构建 exe:

python C:\workspace\code\PyInstaller-2.1\PyInstaller\build.py --onefile test.spec

但什么也没有发生,也没有错误返回。有人可以提供一个简单的分步教程如何做到这一点吗?非常感谢!


coll = COLLECT(exe,
           a.binaries,
           a.zipfiles,
           a.datas,
           [('sikulijar', jar_path, 'PKG')],
           strip=None,
           upx=True,
           name='test')

将元组中的“sikulijar”更改为jar(您已经定义的变量)。您需要引用在代码中使用的相同名称。

不过,我仍在尝试让 JVM 正确初始化。如果我弄清楚了,我会发布它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Pyinstaller 捆绑 .jar 文件 的相关文章

随机推荐

  • ABAP中的求值顺序

    ABAP 是否有明确的评估顺序 例如 在表达式中foo bar 是否可以保证哪种方法foo and bar 首先评估 执行 在 ABAP 关键字文档中找不到此类信息 ABAP 文档 arith exp 算术运算符 https help sa
  • 在哪里可以下载所有聚合物元素的 zip 文件?

    Polymer 1 0 最近发布了 我可以在elements polymer project org https elements polymer project org 网站 但我找不到一个简单的链接来下载一个大 zip 文件中的所有内容
  • #define 与运算符一起使用[重复]

    这个问题在这里已经有答案了 我知道 define具有以下语法 define SYMBOL string例如 如果我写 define ALPHA 2 1 define BETA ALPHA 2 then ALPHA 1 but BETA 0
  • 我应该如何在类和应用程序层之间传递数据?

    例如 如果我正在创建一个 3 层应用程序 数据 业务 UI 并且数据层正在抓取单个或多个记录 在发送到业务层之前 是否将数据层中的所有内容转换为通用列表 集合 发送数据表可以吗 将信息发送回数据层怎么样 如果我使用对象 列表 这些成员是数据
  • iPhone:如何拖动或移动 UIImage/UIButton,如下所示?

    我不知道如何在我的应用程序中获得以下类型的功能 如上图所示 用户可以滑动 拖动 不同的图像部分 并可以组合图像 谁能告诉我这是哪一个控件 或者有什么教程吗 查看 MoveMe 示例应用程序 它将向您展示如何通过触摸和拖动来移动子视图 然后
  • FileLocator.resolve(url) 的转义结果

    方法FileLocator resolve url 可用于翻译地址bundleentry something somewhere x txt到正确的文件 URL mnt foo somewhere x txt 然而 这也记录在https b
  • MFC和ATL之间的根本区别是什么?

    假设我是only将它们用于 普通 GUI 程序 没有 COM 没有 ActiveX 没什么花哨的 我将看到 ATL 和 MFC 之间的根本区别是什么 以帮助我弄清楚使用哪一个 我在网上做了一些搜索 但最终没有一个答案真正回答了我的问题 ht
  • 当 MATLAB 找不到我要打开的文件时,阻止 MATLAB 创建新文件

    我经常尝试使用以下命令从 MATLAB 命令窗口打开现有的 MATLAB 文件 edit exampleFile 或者 我可以按cmd shift D并在编辑器中突出显示要打开的函数的名称 但是 如果在使用这两种方法时我希望打开的函数不在路
  • Python 中的埃拉托斯特尼筛法

    我正在尝试编写一个python函数来返回小于给定值的素数个数以及所有素数的值 我需要使用埃拉托斯特尼筛法算法 我相信我在函数中遗漏了一些东西 例如 当我想找到 100 以下的素数时 我得到的只是 2 3 5 7 我知道如果我不使用 平方根
  • Laravel 在 Trait 内重定向

    trait foo public function bar redirect not working use Traits class DonController extend Controller use Traits foo this
  • 如何反转 DataGridView 中的行

    我正在使用数据网格 但这些值没有按照我希望的方式显示 我当前的代码如下 我将如何反转行 string strOutput strLine Split int totalRows Convert ToInt16 strOutput 4 int
  • PHPUnit 中默认运行单个测试套件

    我的 PHPUnit 配置文件有两个测试套件 unit and system 当我运行测试运行程序时vendor bin phpunit 它运行两个套件中的所有测试 我可以通过以下方式定位单个套件testsuite flag vendor
  • 原则 2 紧密联系

    我将doctrine 2 PDO 与mysql 一起使用 对服务器进行压力测试时 mysql 报告大量中止连接 高达 20 我正在尝试找出问题所在 Mysql手册建议确保正确关闭与数据库的连接 http dev mysql com doc
  • 如何在循环中获取当前迭代器项的索引? [复制]

    这个问题在这里已经有答案了 如何获取Python当前项的索引iterator https docs python org 3 7 glossary html term iterator在循环中 例如当使用正则表达式时finditer返回迭代
  • 在javascript中将json对象写入文本文件

    我在 javascript 中有一个 JSON 对象 我想简单地将 JSON 对象写入文本文件 从我到目前为止遇到的事情来看 由于客户端的安全问题 不可能这样做 有解决方法吗 如果最初放置一些虚拟值 是否可以修改已存在的文件 Thanks
  • 如何通过操作base64代码来调整base64图像的大小或更改分辨率?

    有很多将图像编码为 Base64 的示例 有没有办法通过简单地操作实际的 Base64 编码内容来更改该图像的大小或分辨率 您的 base64 代码可能是 iVBORw0KGgoAAAANSUhEUgAAAWQAAAFjCAIAAACFfO
  • Microsoft Azure 媒体服务上的类似 Skype 的应用程序

    目前我正在研究一个类似 Skype 的应用程序的想法 例如 人们与其他人进行视频通话 现在我想运行这个微软Azure媒体服务 http azure microsoft com en us services media services 但是
  • R - 使用 rgl 绘制由平面描述的区域

    我想绘制一个多面体 它由以下不等式描述 3 x 5 y 9 z lt 500 4 x 5 z lt 350 2 y 3 z lt 150 x y z gt 0 它是一个线性规划 目标函数为 4 x 3 y 6 z 多面体是该程序的可行区域
  • R-cran 中使用线条、点或类似颜色填充箱线图

    我需要在 R 中为箱线图使用黑白颜色 我想用线条和点对箱线图进行颜色填充 举个例子 我想ggplot2可以做到这一点 但我找不到任何方法来做到这一点 预先感谢您的帮助 我认为这是一个很好的问题 并思考是否可以在 R 基础上做到这一点并获得方
  • 如何使用 Pyinstaller 捆绑 .jar 文件

    你怎么获得py安装程序 http www pyinstaller org将 jar 文件捆绑为使用它们的 python 项目的档案 例如 要制作一个 exe 文件 我正在使用pyjnius http pyjnius readthedocs