【问题标题】:How to start py4j GatewayServer from Linux shell?如何从 Linux shell 启动 py4j GatewayServer?
【发布时间】:2024-05-22 22:45:02
【问题描述】:

我想在我的 Linux 主机上运行 py4j。

我的 Java 肌肉很弱,但我知道 Python。

我首先安装了 Anaconda 5.0.1,它为我提供了 Python 3.6.3

接下来我使用 shell 命令安装了 py4j 包:

conda install py4j

然后我安装了Java sdk并放在这里:

$HOME/jdk/

我设置了环境变量:

export JAVA_HOME=${HOME}/jdk
export PATH="${JAVA_HOME}/bin:${PATH}"

我用这个shell命令来看看:

java -version

上面写着:

java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

接下来我研究了这个页面:

https://www.py4j.org/index.html

它要求我启动一个依赖于这个 Java 文件的服务器:

public class AdditionApplication {

  public int addition(int first, int second) {
    return first + second;
  }

  public static void main(String[] args) {
    AdditionApplication app = new AdditionApplication();
    // app is now the gateway.entry_point
    GatewayServer server = new GatewayServer(app);
    server.start();
  }
}

问题:在 Linux 上,我应该运行哪些 shell 命令来启动上述 Java 文件中列出的服务器?

【问题讨论】:

    标签: java python python-3.x py4j


    【解决方案1】:

    我用google学习了一些关于shell命令javac和java的知识。 然后我写了一个运行良好的shell脚本:

    #!/bin/bash
    
    # ~/cryp/java_python/AdditionApplication.bash
    # This script should start a py4j server.
    # Ref:
    # https://www.py4j.org/index.html
    
    cd ~/cryp/java_python/
    
    export JAVA_HOME=${HOME}/jdk
    export PATH="${JAVA_HOME}/bin:${PATH}"
    
    javac -cp py4j0.10.6.jar   py4j/examples/AdditionApplication.java
    java  -cp py4j0.10.6.jar:. py4j.examples.AdditionApplication
    
    exit
    

    【讨论】: