Protocol buffers OS X Maverick上不存在com.google.protobuf包

Protocol buffers OS X Maverick上不存在com.google.protobuf包,protocol-buffers,osx-mavericks,Protocol Buffers,Osx Mavericks,我在OSXMavericks上,开始学习protobuf,我从 我成功地从proto创建了.java文件,但同时使用 制作java时,我遇到以下错误 com/example/tutorial/AddressBookProtos.java:91: package com.google.protobuf does not exist com.google.protobuf.GeneratedMessage ^ com/example/tu

我在OSXMavericks上,开始学习protobuf,我从

我成功地从proto创建了.java文件,但同时使用

制作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
....
....
对此有任何决议吗


谢谢

您需要在
类路径中包含
libprotobuf.jar
。按照Protobuf源代码包中的说明进行构建。

遇到了相同的问题,最终使其正常工作。以下是我在OSX 10.9上所做的(使用2.6.0版):

  • 执行
    java/README.txt
    告诉您的所有操作

  • 如果
    maven包
    成功,您将在
    target
    文件夹下获得一个
    protobuf-java-2.6.0.jar,对我来说,它是
    /Users/laike9m/Dev/protobuf-2.6.0/java/target/protobuf-java-2.6.0.jar

  • 创建
    ~/Library/Java/Extensions
    文件夹,注意:这是特定于平台的操作,对于OSX以外的操作系统,它应该是
    $Java\u HOME/lib/ext

  • 将protobuf-java-2.6.0.jar复制到
    ~/Library/java/Extensions


  • 然后您应该能够成功地运行
    makejava

    @laike9m建议的方法对我来说只起了部分作用。我确实试着按照@laike9m的建议去做一切
    java/README.txt
    。我必须安装maven。我使用了
    brew
    来实现这一点(
    brew安装maven
    )。然后,我使用
    mvn包
    构建了协议缓冲区java源代码。我第一次尝试时,由于一些模糊的错误,它失败了。我用<代码> /配置和制作< /C> >来构建C++代码。下次我尝试使用
    mvn包构建java代码时,它成功了。它将生成的jar放在名为
    target
    的文件夹中。我想回到示例区域,可以使用
    make
    构建java示例,但是我必须通过添加下面的
    -classpath…
    部分来修改
    Makefile

    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
    

    从下面的链接下载protobuf.jar并将jar文件添加到libs文件夹中。这对我来说很有用