Python調用Java可執(zhí)行jar包問題
基于IDEA生成可執(zhí)行jar包
1.編寫class的代碼,注意一定要有main()方法才可以生成jar包,main()方法可以沒有內容。
例如:
public class testFunction { public static void main(String[] args) { } public static void send() { System.out.println("i use message"); } }
2.點擊file->project structure
3.點擊選擇想要生成jar包的類,這里我選擇testFunction.class。
注意Directory for meta-inf/manifest.mf的位置不要選擇默認的,最好選擇項目根目錄。
我選擇默認的會找不到生成的jar包的位置。
4.點擊Build->Build Artifacts后選擇對應的Artifact,并點擊Build即生成成功。
5.生成的jar包
Python如何調用jar
1.需要下載jpype,windows+R輸入cmd進入命令提示符,將路徑轉到jpype所在目錄,執(zhí)行pip install jpype文件名。
2.具體操作方法請自行搜索,能找到詳細步驟。
代碼如下
def sendMessage(): # 1.加載jar包 jarpath = os.path.join(os.path.abspath("."),"(填寫你的jar包的filepath)\\wit_test.jar") # 2.獲取jvm.dll 的文件路徑 jvmPath = jpype.getDefaultJVMPath() # 3.開啟jvm jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % (jarpath)) # 4.加載java類(參數(shù)是java的長類名) javaClass = jpype.JClass("testFunction") # 5.實例化java對象 javaInstance = javaClass() # 6.調用java方法,由于我寫的是靜態(tài)方法,直接使用類名就可以調用方法 javaInstance.send() # 7.關閉jvm jpype.shutdownJVM() pass
如果只需調用一次jar包,上述代碼可行。
如果需要多次調用會出現(xiàn)重新啟動失敗的問題,那么解決辦法是把代碼放在main()函數(shù)中,前5步代碼初始化完畢后,每次只循環(huán)使用第6步代碼。
第7步代碼去掉。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
關于PyTorch源碼解讀之torchvision.models
今天小編就為大家分享一篇關于PyTorch源碼解讀之torchvision.models,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08python+selenium+chromedriver實現(xiàn)爬蟲示例代碼
這篇文章主要介紹了python+selenium+chromedriver實現(xiàn)爬蟲示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04