ubuntu 电脑安装protoc-gen-grpc-kotlin

首先下载**protoc-gen-grpc-kotlin-1.5.0-jdk8.jar包,下载地址如下:**

https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-kotlinhttps://repo1.maven.org/maven2/io/grpc/

有了protoc-gen-grpc-kotlin-1.5.0-jdk8.jar后 ,我们只需要写一个简单的"外壳"脚本,让 protoc 能够通过 Java 运行这个 JAR 包。

请按照以下 4 个步骤操作:

  1. 将 JAR 包移动到固定目录

为了防止误删,建议把它从"下载"文件夹移动到配置目录:

bash 复制代码
mkdir -p /home/ubt/.local/bin
mv ~/下载/protoc-gen-grpc-kotlin-1.5.0-jdk8.jar /home/ubt/.local/bin/
  1. 创建启动脚本

我们需要创建一个名为 protoc-gen-grpc-kotlin不带 .jar 后缀)的可执行文件:

cpp 复制代码
nano /home/ubt/.local/bin/protoc-gen-grpc-kotlin
  1. 在编辑器中粘贴以下内容

直接复制这两行(这会自动把 protoc 传给插件的所有参数转发给 Java):

bash 复制代码
#!/bin/bash
java -jar /home/ubt/.local/bin/protoc-gen-grpc-kotlin-1.5.0-jdk8.jar "$@"

Ctrl + O 保存,Ctrl + X 退出。

  1. 赋予执行权限
bash 复制代码
chmod +x /home/ubt/.local/bin/protoc-gen-grpc-kotlin

验证并构建

现在运行验证命令,如果看到类似 Missing input file 或参数错误的提示(只要不是 command not found<html>),就说明配置成功了:

bash 复制代码
/home/ubt/.local/bin/protoc-gen-grpc-kotlin --version
复制代码
 /home/ubt/.local/bin/protoc-gen-grpc-kotlin --version
Exception in thread "main" java.nio.file.NoSuchFileException: --version
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
	at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
	at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
	at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:422)
	at java.base/java.nio.file.Files.newInputStream(Files.java:160)
	at io.grpc.kotlin.generator.protoc.AbstractGeneratorRunner.readFileDescriptorSet(AbstractGeneratorRunner.kt:96)
	at io.grpc.kotlin.generator.protoc.AbstractGeneratorRunner.mainAsCommandLine(AbstractGeneratorRunner.kt:70)
	at io.grpc.kotlin.generator.protoc.AbstractGeneratorRunner.doMain(AbstractGeneratorRunner.kt:91)
	at io.grpc.kotlin.generator.GeneratorRunner.main(GeneratorRunner.kt:27)

恭喜,这个报错(

java.nio.file.NoSuchFileException: --version)其实是一个非常好的信号

这证明了以下几点:

  1. 你的 Java 环境 正常工作。
  2. 你的 启动脚本 (/home/ubt/.local/bin/protoc-gen-grpc-kotlin) 成功调用了 JAR 包。
  3. 插件已经生效 :它报错是因为它正试图把 --version 当作一个 .proto 定义文件去解析,而它找不到这个文件。

为什么会这样?

protoc-gen-grpc-kotlin 插件是一个内部编译器插件 ,它设计上不是为了在终端独立运行的,而是由 protoc 自动调用的。它不识别 --version 参数,所以报了 NoSuchFileException

相关推荐
码视野13 分钟前
基于 Vue3 + Element Plus 的【智慧新能源汽车充电桩运维调度与分时共享租赁系统】设计与实现(附完整源码与PRD)
运维·人工智能·汽车·vue3
qq_4260039624 分钟前
【UI自动化测试】UI自动化报错解决方案
运维·ui·自动化
网安蟹佬霸43 分钟前
WAF绕过技术实战:从规则检测到编码绕过全指南(2026最新版,附Payload集与自动化脚本)
运维·安全·网络安全·架构·自动化·网安
小杨不想秃头1 小时前
信息安全工程师教程第二章密码学
运维·服务器·密码学
I'mChloe1 小时前
WGCLOUD怎么监控多台服务器?从Server、Agent 部署到监控面板实战
运维·服务器
Android系统攻城狮1 小时前
Linux PipeWire深度解析之pw_init调用流程与实战(八十三)
linux·运维·服务器·音频进阶·pipewire音频进阶
国科安芯2 小时前
轨道供电韧性:ASP4644四通道降压架构在低轨卫星平台电源管理中的适用性分析
运维·网络·数据库·嵌入式硬件·架构·状态模式·低轨卫星星座
M78佐菲2 小时前
Linux学习笔记:进程
linux·笔记·学习·算法
Python自动化直播2 小时前
周末测试直播自动化时,发现一个棘手的并发问题
运维·自动化
zbyyd3 小时前
Linux 进程管理详解:从概念到实战
linux·运维·服务器