我在OS X Mavericks并开始学习protobuf,我从https://code.google.com/p/protobuf/downloads/list下载示例
我能够成功地从proto创建.java文件,但在使用
编译现有java代码时make java,我收到以下错误
com/example/tutorial/AddressBookProtos.java:91: package com.google.protobuf does not exist
com.google.protobuf.GeneratedMessage
^
com/example/tutorial/AddressBookProtos.java:12: package com.google.protobuf does not exist
extends com.google.protobuf.MessageOrBuilder {
^
com/example/tutorial/AddressBookProtos.java:9: package com.google.protobuf does not exist
com.google.protobuf.ExtensionRegistry registry) {
^
com/example/tutorial/AddressBookProtos.java:2495: package com.google.protobuf.Descriptors does not exist
private static com.google.protobuf.Descriptors.Descriptor
^
com/example/tutorial/AddressBookProtos.java:2498: package com.google.protobuf.GeneratedMessage does not exist
com.google.protobuf.GeneratedMessage.FieldAccessorTable
....
....
对此有何决议?
由于
答案 0 :(得分:5)
遇到同样的问题,终于搞定了。这是我在OSX 10.9上所做的(使用2.6.0版):
将所有内容java/README.txt
告诉您
如果maven package
成功,您就会在protobuf-java-2.6.0.jar
文件夹下找到target
,对我而言/Users/laike9m/Dev/protobuf-2.6.0/java/target/protobuf-java-2.6.0.jar
。
创建~/Library/Java/Extensions
文件夹,注意:这是特定于平台的操作,对于OSX以外的操作系统应该是$JAVA_HOME/lib/ext
将protobuf-java-2.6.0.jar
复制到~/Library/Java/Extensions
然后您应该能够成功运行make java
。
答案 1 :(得分:1)
您需要在libprotobuf.jar
中加入CLASSPATH
。按照Protobuf源包中的java/README.txt
下的说明进行构建。
答案 2 :(得分:0)
@ laike9m建议只为我部分工作。我绝对试图像@ laike9m建议的那样做java/README.txt
。我不得不安装maven。我使用brew
来做到这一点(brew install maven
)。然后我使用mvn package
构建了协议缓冲区java源代码。我第一次尝试,它失败了由于一些模糊的错误。我使用./configure && make
构建了C ++代码。下次我尝试使用mvn package
构建java代码时,它工作正常。它将生成的jar放在名为target
的文件夹中。我想回到示例区域并且能够使用make
构建java示例,但我必须通过添加下面的Makefile
部分来修改-classpath...
:
javac_middleman: AddPerson.java ListPeople.java protoc_middleman
javac -classpath .:../java/target/protobuf-java-2.6.1.jar:$$CLASSPATH AddPerson.java ListPeople.java com/example/tutorial/AddressBookProtos.java
@touch javac_middleman
答案 3 :(得分:0)
从下面的链接下载protobuf.jar并将jar文件添加到libs文件夹中。它适用于我。
https://code.google.com/archive/p/android-market-api/downloads