在 Windows 上为 Java 安装和使用 Protocol Buffers
Install and use Protocol Buffers for Java on Windows
在 Windows 环境中将 Google Protobuf 用于 Java 的文档不是很友好,分散且使新用户感到困惑。这是一个小小的尝试,可以帮助新探索者。
- 从 https://github.com/google/protobuf/releases - At the time of writing, the latest is v3.3.0 and hence appropriate binary is https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-win32.zip
下载 Win32 二进制文件
- 将此zip文件解压到一个目录下,并将其下的bin目录添加到系统路径环境变量中
- 从 Github 存储库中检出源代码 - 由于 v3.3.0 是最新版本,因此检出相同的标签而不是 master。
- 从步骤 1 复制 protoc.exe 并将其粘贴到签出位置的 src 目录下。
- 继续 运行 此处提供的 Maven 任务 - https://github.com/google/protobuf/tree/master/java
到运行图书馆的examples -
- 将上述第 1 步中的
protoc.exe
复制到首选位置,并确保该位置已添加到 Path
环境变量中。为确保正确完成,请打开一个新的命令提示符和 运行 protoc --version
以查看您安装的相应版本。
为示例给出的协议格式创建 Java 包 - 在 addressbook.proto
中定义,如 here - protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto
- 这会生成required AddressBookProtos
class 包下 com.example.tutorial
是编译示例代码所必需的。
一旦生成的代码在示例class路径中,就可以执行代码了。
作为更简单的方法,尤其是对于偶尔使用的用户,您还可以:
- 将您的架构片段复制并粘贴到此处:https://protogen.marcgravell.com
- select “(protoc) Java”(或您需要的任何语言),然后单击 "generate"
- 复制您的代码,或惊叹于您的架构片段中的编辑器内错误和警告
当前限制:
- 只有一个输入和输出文档可用 - 这纯粹是一个 UI 问题(我需要让选项卡式编辑器工作,希望这周)
- 这也意味着 "import" 受到严重限制 - 尽管一些内置导入可以正常工作(例如,"google/protobuf/duration.proto" 将解析并正常工作)
- 目前,如果 "non protoc" 解析器检测到语法错误并且您的模式包含单词 "import",它不会调用 "protoc" - 这是我调查 protoc 是否可以曾经被滥用来访问意外文件
在 Windows 环境中将 Google Protobuf 用于 Java 的文档不是很友好,分散且使新用户感到困惑。这是一个小小的尝试,可以帮助新探索者。
- 从 https://github.com/google/protobuf/releases - At the time of writing, the latest is v3.3.0 and hence appropriate binary is https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-win32.zip 下载 Win32 二进制文件
- 将此zip文件解压到一个目录下,并将其下的bin目录添加到系统路径环境变量中
- 从 Github 存储库中检出源代码 - 由于 v3.3.0 是最新版本,因此检出相同的标签而不是 master。
- 从步骤 1 复制 protoc.exe 并将其粘贴到签出位置的 src 目录下。
- 继续 运行 此处提供的 Maven 任务 - https://github.com/google/protobuf/tree/master/java
到运行图书馆的examples -
- 将上述第 1 步中的
protoc.exe
复制到首选位置,并确保该位置已添加到Path
环境变量中。为确保正确完成,请打开一个新的命令提示符和 运行protoc --version
以查看您安装的相应版本。 为示例给出的协议格式创建 Java 包 - 在
addressbook.proto
中定义,如 here -protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto
- 这会生成requiredAddressBookProtos
class 包下com.example.tutorial
是编译示例代码所必需的。一旦生成的代码在示例class路径中,就可以执行代码了。
作为更简单的方法,尤其是对于偶尔使用的用户,您还可以:
- 将您的架构片段复制并粘贴到此处:https://protogen.marcgravell.com
- select “(protoc) Java”(或您需要的任何语言),然后单击 "generate"
- 复制您的代码,或惊叹于您的架构片段中的编辑器内错误和警告
当前限制:
- 只有一个输入和输出文档可用 - 这纯粹是一个 UI 问题(我需要让选项卡式编辑器工作,希望这周)
- 这也意味着 "import" 受到严重限制 - 尽管一些内置导入可以正常工作(例如,"google/protobuf/duration.proto" 将解析并正常工作)
- 目前,如果 "non protoc" 解析器检测到语法错误并且您的模式包含单词 "import",它不会调用 "protoc" - 这是我调查 protoc 是否可以曾经被滥用来访问意外文件