zoukankan      html  css  js  c++  java
  • python调用java代码 java虚拟机(jvm)

    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.8jdk1.8.0_191jreinserverjvm.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

  • 相关阅读:
    PAT(A) 1065. A+B and C (64bit) (20)
    PAT(A) 1046. Shortest Distance (20)
    PAT(A) 1042. Shuffling Machine (20)
    PAT(A) 1009. Product of Polynomials (25)
    PAT(A) 1002. A+B for Polynomials (25)
    win10开始菜单打不开怎么办?
    排序
    C语言文件读写操作总结
    NO.3 4 章 模拟、算法初步
    POJ2104 K-th Number(归并树)
  • 原文地址:https://www.cnblogs.com/wuzaipei/p/11161247.html
Copyright © 2011-2022 走看看