码迷,mamicode.com
首页 > 编程语言 > 详细

python调用java代码 java虚拟机(jvm)

时间:2019-07-10 01:07:36      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:com   中文路径   重要   过程   java   str   pre   工作   dll   

1、新建com文件夹,在里面新建 fibnq.java

package com;

public class fibnq {
    public fibnq(){}

    public int  fb(int n){
        if(n <2){
            return 1;
        }else {
            return fb(n-1)+fb(n-2);
        }
    }
}

2、在com文件夹路径打开cmd,编译fibnq.java 

javac ./fibnq.java

3、返回上一层目录

cd ../

4、把fibnq类打包:注意   com要和fibnq.java的包名相同

jar cvf test.jar com

5、python调用:先安装   :pip install jpype1   自行百度安装

import time

from jpype import *
import os

if __name__ == __main__:
    jdkPath = r"D:\Java1.8\jdk1.8.0_191\jre\bin\server\jvm.dll"

    #  注意一个重要的问题,导入包的时候路径不能有中文。
    jarpath = os.path.join(os.path.abspath(.), test.jar)
    print(jarpath)
    startJVM(jdkPath,"-ea","-Djava.class.path=%s" % jarpath) #
    java.lang.System.out.println(" helloworld! ")
    fibnq = JClass(javaIoStream.fibnq)
    # 或者通过JPackage引用Test类
    # javaIoStream = JPackage(‘javaIoStream‘)
    # fibnq = javaIoStream.fibnq()
    st = time.time()
    for i in range(40):
        print(fibnq().fb(i))

    print(time.time()-st)
    shutdownJVM()

6、注意所有工作路径确保在英文路径下进行,出现中文路径会出现报错,各种bug。

  过程中我遇到个问题就是 版本不谦容问题,我使用   python3.6.5 需要安装  JPype1-0.6.3-cp36-cp36m-win_amd64.whl

  我之前安装过 jpype1-0.7.0 版本出现一个异常错误,目前找不到解决的方法,建议安装   jpype1-0.6.3

python调用java代码 java虚拟机(jvm)

标签:com   中文路径   重要   过程   java   str   pre   工作   dll   

原文地址:https://www.cnblogs.com/wuzaipei/p/11161247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!