繁体   English   中英

Sikuli python脚本中的jar或exe文件

[英]jar or exe file from Sikuli python script

我刚刚开始用Python用Sikuli做一些脚本。

我想知道是否有可能(如果是,如何)从我的python脚本(文件.py和images)创建jar或exe文件。

我想从没有安装sikuli的其他计算机上轻松运行我的程序(例如java -jar my_script.jarmy_script.exe )或将该实用程序提供给某些同事,但我不希望他们看到源代码码。

有多种方法可以将.py转换为.exe和exetra

虽然我相信可以更改扩展名,但如果您使用python扩展名,则过程会更加轻松,顺畅,例如Py2exe可以通过简单的Google搜索找到下载的文件(我也提供了指向它们的链接网站)。 该程序将允许您将程序转换为.exe,并且无需安装python就可以运行。

这是一个信誉良好的选择列表: http : //www.freehackers.org/Packaging_a_python_program

我个人会推荐Py2exe( http://www.py2exe.org/ ),有关Py2exe的教程可以在此处找到( http://www.py2exe.org/index.cgi/Tutorial

使用jar文件,就像Sikuli用Java编写并使用Jython一样 您需要做三件事才能使它起作用。

获取Sikuli罐子:

首先获取sikuli-java.jar文件( 此处是分步说明 ),您可以通过下载sikuli-setup.jar来获取,然后使用选项4(仅Java)和6(与所有OS兼容)运行它。 这应该下载sikuli-java.jar文件。

以jar形式分发脚本本身:

混淆版本:

您可以使用Jython编译Python( 此处有完整说明 ):

$JYTHON_HOME/jython $JYTHON_HOME/Lib/compileall.py python_src/

其中python_src是包含所有.py文件的目录。

然后,您可以使用包装程序类从Java调用这些编译文件(看起来像myFile$py.class )(有关示例,请参见完整说明)。 该包装器调用了一个Python方法,因此您可以将该方法作为开始其他程序的主要Python方法。

编译包装器类:

javac -cp $JYTHON_HOME/jython.jar TestJ.java

然后jar所有.class文件

jar cvfe myapp.jar <packageName>.TestJ *.class

其中, <packageName>是包装器TestJ.java类的软件包。

您还需要将Jython添加到此jar中。 只需按照下面“ jar中的Python .py文件”部分的前几个步骤进行操作,或下载独立的Jython jar,并在下面的“合并jars”部分sikuli-java.jar其包含为sikuli-java.jar

jar中的Python .py文件:

现在,您必须为脚本本身创建jar。 完整说明在这里 ,但是如果您想摘要:

以安装Jython时获得的jython.jar文件并将Jython Lib目录压缩到其中,然后压缩.py文件,然后添加具有启动逻辑的__run__.py文件(Jython对该文件进行了特殊处理)并且将是您使用java -jar调用jar时执行的文件。

如果愿意,还可以从python.org获得更通用的指南

注意:
上面的完整说明假定您具有zip程序。 如果不这样做,则可以使用jar uvf jythonlib.jar Lib代替zip -r jythonlib.jar Lib (在使用zip任何地方都可以执行类似操作)。 看到这里更多

合并罐子

您可以使用jar来简单地将sikuli-java.jar添加到包含脚本的jar上面的注释所述 如果愿意,还可以组合两个jar文件 (也可以使用jar )。

无论哪种方式,这都应该为您提供一个jar文件,该文件可以在具有兼容JVM的任何系统上运行Sikuli程序。 使用运行它

java -jar myapp.jar

恭喜,您完成了!

如果您需要处理命令行参数,或者通常需要更多详细信息,请参见堆栈溢出指南完整的Python指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM