当前位置: 首页 > 知识库问答 >
问题:

Javagrpc运行时错误

谷泽宇
2023-03-14

我正在尝试仅使用本地依赖项编译和运行java grpc客户端,但出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: io/netty/channel/socket/nio/NioSocketChannel
at io.grpc.netty.NettyChannelBuilder.<init>(NettyChannelBuilder.java:69)
at io.grpc.netty.NettyChannelBuilder.<init>(NettyChannelBuilder.java:103)
at io.grpc.netty.NettyChannelBuilder.forAddress(NettyChannelBuilder.java:91)
at io.grpc.netty.NettyChannelProvider.builderForAddress(NettyChannelProvider.java:52)
at io.grpc.netty.NettyChannelProvider.builderForAddress(NettyChannelProvider.java:38)
at io.grpc.ManagedChannelBuilder.forAddress(ManagedChannelBuilder.java:45)
at myclient.MyClient.<init>(myClient.java:28)
at myclient.MyClient.main(myClient.java:90)
Caused by: java.lang.ClassNotFoundException: io.netty.channel.socket.nio.NioSocketChannel
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 8 more

这是我的gradle文件:

apply plugin: 'java'

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile name: 'grpc-netty-1.0.3'
    compile name: 'grpc-okhttp-1.0.3'
    compile name: 'grpc-protobuf-1.0.3'
    compile name: 'grpc-stub-1.0.3'
    compile name: 'grpc-core-1.0.3'
    compile name: 'guava-20.0'
    compile name: 'protobuf-java-3.1.0'
}

jar {
    manifest {
        attributes(
        'Main-Class': 'myclient.myClient',
        'Class-Path': configurations.compile.collect {it.getName() }.join(' ')
        )
    }
}

程序将编译,但不运行。我已经从protos生成了我的java文件,并验证了我是否使用了正确的protoc和protoc gen grpc java与我正在使用的jar库相对应。非常感谢您的帮助。

共有1个答案

蒋俊
2023-03-14

你需要netty jar文件,从这里下载

https://mvnrepository.com/artifact/io.netty/netty-all/4.0.0.CR1

别忘了把它添加到你的类路径中

更新:

我的错,请下载所有相关jar文件。检查=

https://mvnrepository.com/artifact/io.netty/netty-codec-http2/5.0.0.Alpha2

 类似资料:
  • 问题内容: 我是mysql和jdbc的新手,但出现此标题错误。我整天都在搜索,找不到适合我的解决方案。 我尝试过的操作:卸载/重新安装mysql,将mysql-connector- java-5.1.25-bin.jar和ojdbc7.jar复制粘贴到与我要运行的.class文件相同的位置,然后将该程序重建在其他目录中,可能还有其他几件事。 我正在使用notepad ++进行编码,并使用Windo

  • 我收到一个奇怪的错误。在我初始化总数的线上。如果你有空闲时间帮我,我不明白; 第10行:Char 24:运行时错误:-inf超出了“int”(solution.cpp)类型的可表示值的范围摘要:UndefinedBehaviorSanitizer:undefined behavior prog_joined。cpp:19:24

  • 我在上面有一个问题:我使用了提供的答案,但仍然击中了一个对象错误。你能看到我错过了什么吗?我在“cash_sheet.range(”C8“).pastespecial xlpastevalues”处找到了错误

  • 这个程序应该在一个JFrame中添加两个面板,每个面板都有一个开关按钮,允许用户在每个面板之间切换。它编译得很好,但是当我试图单击Switch1按钮时,我得到了这个错误: java线程“AWT-EventQueue-0”中出现异常。ClassCastException:java。awt。无法将BorderLayout转换为java。awt。测试仪上的卡片布局。在javax上执行的操作(tester

  • 我试图插入到一个MySQL数据库,代码工作和插入,但立即崩溃,看不出问题。 Applications.loginandRegister e/AndroidRuntime:致命异常:主进程:Applications.loginandRegister,PID:2545 Android.view.WindowManager$BadTokenException:无法添加窗口--令牌Android.os.B