2016-02-27 287 views
3

我从py4j文件下面这个简单的例子:py4j.protocol.Py4JNetworkError:试图连接到Java服务器出现错误

from py4j.java_gateway import JavaGateway 

def main(): 

    print("Hello") 
    gateway = JavaGateway()     # connect to the JVM 
    random = gateway.jvm.java.util.Random() # create a java.util.Random instance 
    number1 = random.nextInt(10)    # call the Random.nextInt method 
    number2 = random.nextInt(10) 
    print(number1,number2) 

if __name__ == '__main__': 
    main() 

我想跑,但出现以下错误:

Traceback (most recent call last): 
    File "/Users/edamameQ/github/myTest/main.py", line 16, in <module> 
    main() 
    File "/Users/edamameQ/github/myTest/main.py", line 7, in main 
    random = gateway.jvm.java.util.Random() # create a java.util.Random instance 
    File "/Library/Python/2.7/site-packages/py4j/java_gateway.py", line 1188, in __getattr__ 
    "\n" + proto.END_COMMAND_PART) 
    File "/Library/Python/2.7/site-packages/py4j/java_gateway.py", line 624, in send_command 
    connection = self._get_connection() 
    File "/Library/Python/2.7/site-packages/py4j/java_gateway.py", line 579, in _get_connection 
    connection = self._create_connection() 
    File "/Library/Python/2.7/site-packages/py4j/java_gateway.py", line 585, in _create_connection 
    connection.start() 
    File "/Library/Python/2.7/site-packages/py4j/java_gateway.py", line 697, in start 
    raise Py4JNetworkError(msg, e) 
py4j.protocol.Py4JNetworkError: An error occurred while trying to connect to the Java server 

有什么我应该按顺序连接到Java服务器呢?谢谢!

回答

1

其实我需要单独启动JavaGateway。即先运行下面的Java应用程序,然后python会工作。

import py4j.GatewayServer; 

public class myTest { 

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