[Py4J]从Pythyon端启动Py4J

  • Jar包没有main class。启动阻塞,直到JVM启动,Python才会尝试连接
  • java_server = JavaGateway.launch_gateway(java_path=__java_home, classpath=__class_path, die_on_exit=True, jarpath=__py4j_jar,
                                      javaopts=["-Djava.library.path=" + dylib, '-Djava.awt.headless=true', "-DWORKDIR=" + work_dir, "-Xmx1024m"])
    client = java_server.jvm.MainClass.getFactoryInstance()


  • Jar包有main class。启动非阻塞,可能导致JVM没有启动,Python就去连接的错误
  • command = [__java_home, '-classpath', __class_path,
               "-Djava.library.path=" + dylib, '-Djava.awt.headless=true', "-DWORKDIR=" + work_dir, __jar_name]
    proc = subprocess.Popen(command, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=open(os.devnull, "w"), **{})
    java_gateway = JavaGateway()
    client = java_gateway.entry_point


posted @ 2017-10-18 10:22  IronJJ  阅读(221)  评论(0编辑  收藏  举报