1. 程式人生 > >RobotFrameWork引用java庫(jar檔案)

RobotFrameWork引用java庫(jar檔案)

該方法是用python自己擴建庫,在擴建庫的時候用python引用jar包

建立本地庫或遠端庫看這裡
下面正式開始
一、安裝JPype
JPype是一個能夠讓 python 程式碼方便地呼叫 Java 程式碼的工具
下載地址:https://pypi.org/project/JPype1/(現在最新版本0.6.3)
pip安裝:pip install JPype1
安裝JPype之前需要先安裝VCForPython27

二、建立jar包
我得jar包是放在專案檔案加下面的/javalibs/資料夾下的,你自己可以隨意,引用時注意位置就行

//自己寫jar包,我的jar包內容如下
package test.authentication;

public
class Execute02 { //這裡的方法名不能修飾為靜態的,否則在python中呼叫時報錯 public String start(String timekey1,String cname1,String vcode1) { return timekey1+cname1+vcode1 } }

三、建立python庫,在python庫函式中引用jar包

#coding=utf-8

from jpype import *
import os.path

class liveauth(object):
    def __init__(self)
:
pass def getliveparam(self,timekey='',cname='',vcode=''): #這裡傳參,引數三個timekey,cname,vcode #這裡傳參可以先寫預設值,我這裡的預設值都是''空,有預設值時robotframework呼叫時可以不傳參 #也可以不要預設值,不喲啊預設值在呼叫時必須傳參,不然會報錯, #不要預設值上面該這樣寫:getliveparam(self,timekey,cname,vcode) """ 傳入三個值timekey、cname、liveurl並返回加密值base64param 檢視註釋 Example: | ${result} | getliveparam | timekey | cname | vcode | """
#獲取jar包地址,os.path.abspath('.')返回當前工作地址,也就是robotframework專案資料夾 home = os.path.abspath('.') jarpath = os.path.join(os.path.abspath('.'), home+'/javalibs/Execute02.jar') #上面那句也可以如下寫成絕對地址,寫成絕對地址時可以將jar包放在任意位置,但jar位置變了這裡就得改 #jarpath = os.path.join(os.path.abspath('.'), 'D:/test/javalibs/Execute02.jar') #啟動java虛擬機器 if not isJVMStarted():#如果jvm沒啟動才執行啟動操作 startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % jarpath) #獲取類,這裡是包名和類名,報名從第一層開始寫 Execut = JClass('test.authentication.Execute02') # 或者通過JPackage引用Test類 # com = JPackage('test.authentication').Execute02() #呼叫相關方法函式 t = Execut() res = t.start(timekey,cname,vcode) #返回從java方法中獲取的值 return res #用完後記得關閉java虛擬機器,當然python程式退出時JVM也會自動關閉 shutdownJVM()