尝试调用:
get_gateway().jvm.Test2.Test2.main(None)

> 在 2021年2月5日,18:27,瞿叶奇 <389243...@qq.com> 写道:
> 
> 老师,您好,列表参数就不在报错,但是还是没有加载进去。
> >>> from pyflink.util.utils import add_jars_to_context_class_loader
> >>> add_jars_to_context_class_loader(['file:///root/Test2.jar 
> >>> <file:///root/Test2.jar>']) 
> >>> from pyflink.java_gateway import get_gateway
> >>> get_gateway().jvm.Test2.main()
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File 
> "/root/qyq_f/flink-1.12.0/opt/python/pyflink.zip/pyflink/util/exceptions.py", 
> line 191, in wrapped_call
> TypeError: Could not found the Java class 'Test2.main'. The Java dependencies 
> could be specified via command line argument '--jarfile' or the config option 
> 'pipeline.jars'
> java code:
> package Test2;
> public class Test2 {
>     public int add(int a, int b) {
>         return a + b;
>     }
> 
>     public static void main(String[] args) {
>             int a = 1;
>             int b = 2;
>             Test2 t2=new Test2();
>             int c=t2.add(a,b);
>             System.out.print(c);
>         }
> }
> 
> 
> ------------------ 原始邮件 ------------------
> 发件人:  "user-zh" <weizhong0...@gmail.com <mailto:weizhong0...@gmail.com>>;
> 发送时间: 2021年2月5日(星期五) 晚上6:01
> 收件人: "user-zh"<user-zh@flink.apache.org <mailto:user-zh@flink.apache.org>>;
> 主题: Re: pyflink的py4j里是不是可以调用我自己写的java程序 ?
> 
> 图片似乎无法加载,不过我猜应该是参数类型问题?这个函数需要参数类型为List:
> add_jars_to_context_class_loader(["file:///xxx <file:///xxx> <file:///xxx 
> <file:///xxx>>"])
> 
> > 在 2021年2月5日,17:48,瞿叶奇 <389243...@qq.com> 写道:
> > 
> > 老师,您好,
> > 我升级到了flink1.12.0了,用这个函数加载类报错了,是我url写的有问题吗?pyfink有没有连接hdfs认证kerberos的方法呢?
> > 
> > 
> > 
> > 
> > ------------------ 原始邮件 ------------------
> > 发件人: "user-zh" <weizhong0...@gmail.com>;
> > 发送时间: 2021年2月5日(星期五) 下午3:53
> > 收件人: "user-zh"<user-zh@flink.apache.org>;
> > 主题: Re: pyflink的py4j里是不是可以调用我自己写的java程序 ?
> > 
> > Hi,
> > 
> > 首先你需要将你的java程序打成jar包,之后热加载你的jar包, 目前pyflink里有一个util方法可以直接调用:
> > from pyflink.util.utils import add_jars_to_context_class_loader
> > add_jars_to_context_class_loader("file:///xxx <file:///xxx>") # 
> > 注意需要是url格式的路径
> > 
> > 然后就能通过java gateway进行调用了:
> > from pyflink.java_gateway import get_gateway
> > get_gateway().jvm.your.class.name.main()
> > 
> > 注意这个util方法是在较新的版本里才有,你可能需要升级一下pyflink版本
> > 
> > > 在 2021年2月5日,10:48,瞿叶奇 <389243...@qq.com> 写道:
> > > 
> > > 老师,我想用java jvm认证kerberos程序,供给pyflink使用,就是说如果是函数的话,就只是个调用的无输入函数,怎么样才能做到?
> > > 
> > > 
> > > 
> > > 
> > > ------------------&nbsp;原始邮件&nbsp;------------------
> > > 发件人:                                                                      
> > >                                                   "user-zh"               
> > >                                                                      
> > > <hxbks...@gmail.com <mailto:hxbks...@gmail.com>&gt;;
> > > 发送时间:&nbsp;2021年2月5日(星期五) 上午10:35
> > > 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org 
> > > <mailto:user-zh@flink.apache.org>&gt;;
> > > 
> > > 主题:&nbsp;Re: pyflink的py4j里是不是可以调用我自己写的java程序 ?
> > > 
> > > 
> > > 
> > > Hi,
> > > 
> > > 你是想使用java写的udfs吗,你可以调用register_java_function或者create_java_temporary_function来注册你用java写的udfs,具体可以参考文档[1]
> > > 
> > > [1]
> > > https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/python/table-api-users-guide/udfs/python_udfs.html#scalar-functions
> > >  
> > > <https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/python/table-api-users-guide/udfs/python_udfs.html#scalar-functions>
> > > 
> > > Best,
> > > Xingbo
> > > 
> > > 
> > > 瞿叶奇 <389243...@qq.com <mailto:389243...@qq.com>&gt; 于2021年2月4日周四 下午5:53写道:
> > > 
> > > &gt; 请问如何实现pyflink的py4j调用我自己写的java程序 ?
> > 
> > 

回复