线程“main”中的Py4j异常java.lang.NoClassDefFoundError文件:py4j/网关

2024-07-08 11:51:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望python使用py4j调用java方法,当我将java文件打包为jar并在windows中运行时,它出错了:

>java -jar spark-1.0-SNAPSHOT.jar

Exception in thread "main" java.lang.NoClassDefFoundError: py4j/GatewayServer
    at com.littlely.AddNum.main(AddNum.java:11)
Caused by: java.lang.ClassNotFoundException: py4j.GatewayServer
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 1 more

爪哇:

package com.littlely;
import py4j.GatewayServer;

public class AddNum{
    public float add(float a, float b){
        return a + b;
}

    public static void main(String[] args) {
        GatewayServer server = new GatewayServer(new AddNum());
        server.start();
        System.out.println("server started!");
}}

Python:

from py4j.java_gateway import JavaGateway

def main():
    jvm = JavaGateway().jvm
    myadd = jvm.com.littlely.AddNum()
    print(myadd.add(40.0, 80.0))


if __name__ == "__main__":
    main()

我已将主类添加到舱单.MF档案,怎么了?我是java新手,请给我举个例子。你知道吗


Tags: comsourcelangmainjavapublicfloatat

热门问题