java运行python脚本_在Python中调用java程序

不同语言有不同的优势,实际项目中的各个模块可能不是用同一种语言编写的。下面介绍在Python中调用java程序的过程。

首先得将想要导出的java文件生成jar包(一般而言,在我们的java文件中肯定会涉及到第三方java程序(jar),这里这种情况也适用)

如果我们要导出的java文件中引用了第三方的jar,我们将所有的第三方jar文件放在项目目录下的lib文件夹下(手动新建lib文件夹),另外,在正式生成jar之前,我们要先创建个文件,文件名为:​MANIFEST.MF,文件内容如下:

​Manifest-Version: 1.0

Class-Path: lib/jetty-6.1.26.jar

lib/jersey-server-1.9.jar

*****

Class-Path: lib/jersey-guice-1.9.jar

lib/commons-math3-3.1.1.jar ***

Class-Path: lib/commons-lang-2.6.jar

Main-Class: com.HBaseHelper com.Test

空行

第一行为版本号,可以不变

第二行:Class-Pass:

后面的内容为要导出的目标java文件中引用的第三方​jar包,有时引入的jar包比较多时,可以写成分多行(一行太长的话后面会报错)

最后一部分为:Main-Class:即为你真正想导出的java文件,前面的“com”即为目标java文件“HBaseHelper.java”第一行的“package

com”,把上文中的“com”替换为你实际对应的java文件第一行对应的package

name即可(不需要“.java”后缀)

注:

1.​Class-Path: 和Main-Class:

后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;

2.​写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,否则将会出现“jar中没有主清单属性”的错误。

之后开始导出项目的jar文件:

eclipse中,选中项目文件->export->jar->选择导出jar的路径->next->next->下图:

sg_trans.gif

选择刚刚写的​MANIFEST.MF文件所在路径->finsih即可。

2.

Python中使用jar包​

安装jpype​包,并import

jpype后,如下:

​jarpath =

os.path.join(os.path.abspath('.'), '../

#jar在Python中的路径(将jar文件拷贝到Python项目任意文件夹下面)

jpype.startJVM(jpype.getDefaultJVMPath(), "-ea",

"-D#不用修改

Test = jpype.JClass("com.Test")#获取类

#本个实例中,jar中com package里面有个Test

class​,里面只有一个方法,test()

t =

Test()#创建类的对象,注意如果你将调用的方法为static方法也要先新建对象,否则会报错

Test.test()#调用java方法

jpype.shutdownJVM()#完成

sg_trans.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值