当前位置:首页 » 编程语言 » python执行jar

python执行jar

发布时间: 2022-09-12 09:44:28

⑴ 求助python3如何调用java jar包

安装JPype-0.5.4.2.win32-py2.7.exe(http://sourceforge.net/projects/jpype/files/JPype/0.5.4/)
Python调用Java代码的一个Python扩展

⑵ python 调用java 是每一次都启动jvm吗

是的

一、JPype简述

1.JPype是什么?

JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足。

2.JPype与Jython(JPython后继者)的区别?

1)运行环境不同:jython运行在jvm上,而JPype的实际运行环境仍然是python runtime,只是在运行期间启动了一个嵌入的jvm;

2)使用者不同:jython是给java程序玩的,JPype是给python程序员玩的。

二、JPype安装

1.先安装Python2.7和JAVA1.6

2.安装JPype-0.5.4.2.win32-py2.7.exe(http://sourceforge.net/projects/jpype/files/JPype/0.5.4/)

3.Ubuntu12.04安装命令:sudo apt-get install python-jpype

三、JPype使用说明

1.启动JVM

JPype 提供的 startJVM() 函数的作用是启动 JAVA 虚拟机,所以在后续的任何 JAVA 代码被调用前,必须先调用此方法启动 JAVA 虚拟机。

  • jpype.startJVM() 的定义

    startJVM(jvm, *args)

  • jpype.startJVM() 的参数

    参数 1: jvm, 描述你系统中 jvm.dll 文件所在的路径,如“ C:Program FilesIBMJava50jreinj9vmjvm.dll ”。可以通过调用 jpype.getDefaultJVMPath() 得到默认的 JVM 路径。

    参数 2: args, 为可选参数,会被 JPype 直接传递给 JVM 作为 Java 虚拟机的启动参数。此处适合所有合法的 JVM 启动参数,例如:

    -agentlib:libname[=options]
    -classpath classpath
    -verbose
    -Xint

  • 2.关闭JVM

    当使用完 JVM 后,可以通过 jpype.shutdownJVM() 来关闭 JVM,该函数没有输入参数。当 python 程序退出时,JVM 会自动关闭。

    3.引用第三方Java扩展包

    很多时候,在 python 项目中需要调用第三方的 Java 扩展包,这也是 JPype 的一个重要用途。

    通过在 JVM 启动参数增加:-Djava.class.path=ext_classpath,实现在 python 代码中调用已有的 Java 扩展包。

    4.访问JAVA的系统属性

    有时,某些 Java 应用需要设置或者获取 JVM 中的系统属性。

  • 在 JVM 启动时设置系统变量示例:

  • 在 JVM 的启动参数中加入如下参数:
    -Dproperty=value

  • 四、举例

    1.直接调用JAVA API

    [java]view plain

  • fromjpypeimport*

  • importos.path

  • startJVM("C:/Java/jdk1.6.0_10/jre/bin/client/jvm.dll","-ea")

  • java.lang.System.out.println("helloWorld")

  • shutdownJVM()



  • 2.调用JAVA第三方扩展包

    1)JAVA自定义第三方jar包:将JpypeDemo类打包为jpypedemo.jar文件并存储到F:/sample_Py目录下

    [java]view plain

  • packagejpype;

  • publicclassJpypeDemo{

  • publicStringsayHello(Stringuser){

  • return"hello"+user;

  • }

  • publicintcalc(inta,intb){

  • returna+b;

  • }

  • }



  • 2)Python调用第三方JAVA jar包程序

    [python]view plain

  • fromjpypeimport*

  • importos.path

  • jarpath=os.path.join(os.path.abspath('.'),'F:/sample_Py/')

  • startJVM("C:/Java/jdk1.6.0_10/jre/bin/client/jvm.dll","-ea","-Djava.class.path=%s"%(jarpath+'jpypedemo.jar'))

  • #ubuntu 中startJVM("/home/geek/Android/jdk1.6.0_43/jre/lib/i386/server/libjvm.so","-ea","-Djava.class.path=%s"%(jarpath+'XXX.jar'))

  • JDClass=JClass("jpype.JpypeDemo")

  • jd=JDClass()

  • #jd=JPackage("jpype").JpypeDemo()#两种创建jd的方法

  • jprint=java.lang.System.out.println

  • jprint(jd.sayHello("waw"))

  • jprint(jd.calc(2,4))

  • shutdownJVM()



  • 3.访问JAVA的系统属性

    假设你要设置的属性名为 yourProperty,属性值为 yourValue 。

    1)JVM启动时设置系统变量示例

    import jpype
    jvmPath = jpype.getDefaultJVMPath()
    jvmArg = “ -DyourProperty=yourValue ”
    if not jpype.isJVMStarted():
    jpype.startJVM(jvmPath,jvmArg)

    2)在程序中设置系统变量示例

    import jpype
    prop = “ yourProperty ”
    value = “ yourValue ”
    system = jpype.JClass('java.lang.System')
    system.setProperty(str(prop),str(value))

    3)在程序中获取系统变量示例

    import jpype
    prop = “ yourProperty ”
    system = jpype.JClass('java.lang.System')
    value = system.getProperty(str(prop))

⑶ python 需要调用 /shell/目录下的run.sh。在脚本中调用的是一个jar包,jar包可

我用的spss版本是22.0,也是最近为了使用SPSS Python Essentials才安装的这个版本,大家可以参考这篇文章,以便正确安装spss 22.0。
安装好了spss22.0以后,如果你按照上面的安装教程进行的安装,SPSS Python Essentials就自动的安装在了你的spss22.0的安装目录下。接下来我们要进行必要的设置。
打开spss22的界面,打开编辑菜单下的【选项】
切换到脚本选项下,我们设置一下缺省脚本语言为python,点击【应用】
切换到【文件位置】选项下,设置python的位置,我们有两个选项,一个是随IBM SPSS安装的位置,这就是说,spss22在安装的时候自动安装了python2.7,如果我们想要使用这个python,就选择第一个选项;但是我现在有一个更好的建议,使用我们自己安装的python,也就是说在安装spss之前就有一个python安装好了,我现在想使用这个python,我们可以设置python的其他安装,然后找到这个python安装的目录,最后点击确定就可以了。为什么我建议使用第二种选择呢?因为我的python下有很多安装好的扩展包,需要在处理数据的时候调用,以后安装新的扩展包也很方便。如果使用是、随spss安装的python,还需要另行安装这些扩展包
设置完成以后,我们想要启动python的编辑窗口,需要在开始菜单中启动,如图所示。不能直接从python的安装目录里启动。
另外,spss22还有一个bug,我们虽然设置了Python的主目录,但是在新建脚本的时候,还是用的随spss安装的python的shell。所以想要使用python脚本,你就从上面那个方面里启动python shell
原作者:Delta数据工作室

⑷ python如何处理jar文件

lz之所以提出jar,就是指在原生python中加载的如nltk等models的处理其他语言扩展.

⑸ window下面,在java服务端调用python,使用jython2.5.jar,报错:ImportError: No mole named StringIO,

OK. 应该有的。我去试一下。一会儿给你回答。 不过我印象中jython中的字符串都是从java习惯来的。所以直接用JAVA就可以了。 StringIO是做String的文件对象封装的。多用于压缩什么的。按理应该会在jython里再实现一次。

刚才我试了一下。我使用的是jython 2.5.1 , java用的是1.7 u9。我安装后试验了一下可以。
D:\jython2.5.1>jython.bat
*sys-package-mgr*: processing new jar, 'D:\jython2.5.1\jython.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\resources.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\rt.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\jsse.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\jce.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\charsets.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\jfr.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\ext\access-bridge-64.ja
r'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\ext\dnsns.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\ext\jaccess.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\ext\localedata.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\ext\sunec.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\ext\sunjce_provider.jar
'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\ext\sunmscapi.jar'
*sys-package-mgr*: processing new jar, 'D:\Java\jre7\lib\ext\zipfs.jar'
Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_09
Type "help", "right", "credits" or "license" for more information.
>>> import StringIO
>>>

⑹ 如何使用python来执行 datax

1、检出DataX源码(git clone https://github.com/alibaba/DataX.git DataX),导入项目,新建一个eswriter的maven项目进行插件开发。
2、在DataX安装目录的plugins/writer目录下新建eswriter目录,目录下包含plugin_job_template.json、plugin.json、eswriter-0.0.1-SNAPSHOT.jar,同时在目录下创建一个libs目录,存放相关依赖的jar文件。

⑺ Java如何调用Python的jar包

Python -> Native 代码 整体思路 先将Python 源代码转换成 C 代码,之后用 GCC 编译 C 代码为二进制模块 so/dll,接着进行一次 Java Native 接口封装,

热点内容
吃鸡游戏安卓区转苹果区怎么转 发布:2025-01-12 11:34:00 浏览:880
网页版c语言 发布:2025-01-12 11:21:01 浏览:864
安卓怎么更改排位常用英雄 发布:2025-01-12 11:10:33 浏览:561
拆迁的100万如何配置 发布:2025-01-12 11:08:52 浏览:575
如何配置ph值为次氯酸钠的ph值 发布:2025-01-12 11:08:52 浏览:437
pythonarraynumpy 发布:2025-01-12 11:01:47 浏览:293
酷我剪辑铃声文件夹 发布:2025-01-12 10:51:59 浏览:683
编译原理龙书第9章 发布:2025-01-12 10:46:53 浏览:155
navicatforlinux破解 发布:2025-01-12 10:46:46 浏览:674
android视频采集 发布:2025-01-12 10:42:28 浏览:655