无法在 Windows 上安装协议

Unable to install protoc on Windows

我发现构建用于从 proto 文件生成 java class 文件的 protoc jar 时出现问题。我真的很感激任何指导或帮助将项目设置到可以从 .proto 文件

生成 java class 文件的水平

我已经从 protobuf git repo 导入了以下项目,但在项目目录中找不到 protoc.exe 文件。

项目本身抱怨无法引用某些 classes。

当我尝试使用 maven 编译和构建 protobuf-parent 项目时,出现如下所示的错误

main:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Protocol Buffers [Parent] .......................... SUCCESS [  0.173 s]
[INFO] Protocol Buffers [Core] ............................ FAILURE [  0.736 s]
[INFO] Protocol Buffers [Util] ............................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.347 s
[INFO] Finished at: 2017-08-30T20:52:49-07:00
[INFO] Final Memory: 16M/220M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (compile-protoc) on project protobuf-java: An Ant BuildException has occured: C:\scratch1\protobuf\protobuf-master\java\core\src\main\proto does not exist.
[ERROR] around Ant part ...<pathconvert property="proto.files" pathsep=" " refid="proto.path"/>... @ 10:71 in C:\scratch1\protobuf\protobuf-master\java\core\target\antrun\build-main.xml
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我建议您在 Windows 上使用预编译的 protoc.exe 二进制文件。 Download protoc-x.x.x-win32.zip and protoc-x.x.x-java.zip packages

解压文件你应该得到这样的文件夹(只列出几个关键文件):

C:\projects\protoc\protoc-x.x.x-win32\bin\protoc.exe
C:\projects\protoc\protoc-x.x.x\protobuf.pc.in
C:\projects\protoc\protoc-x.x.x\java\pom.xml
C:\projects\protoc\protoc-x.x.x\java\core\*
C:\projects\protoc\protoc-x.x.x\java\util\*

使用 Maven 编译 java 项目,查看这个 helper bat 脚本:

cd C:\projects\protoc\protobuf-x.x.x\java
set JAVA_HOME=c:\program files\Java\jdk1.7.0_75
"c:\apps\apache-maven\bin\mvn.cmd" "-Dprotobuf.source.dir=C:\projects\protoc\protoc-x.x.x-win32\bin" package

您应该在以下文件夹中找到 jar 文件,这些是您在使用 MyStructureProto.java 或其他 protobuf 对象(字节到对象,对象到字节)时嵌入到项目中的文件。

C:\projects\protoc\protoc-x.x.x\java\core\target\protobuf-java-3.3.0.jar
C:\projects\protoc\protoc-x.x.x\java\util\target\protobuf-java-util-3.3.0.jar

使用 protoc.exe 从 .proto 模板描述符创建 java 实现:

C:\projects\protoc\protoc-x.x.x-win32\bin\protoc.exe --java_out=. MyStructureProto.proto