在Windows環境下使用Google Protobuf用於Java的文檔不是非常友好,分散並且使新用戶感到困惑。這是一個幫助新探險家的小小嚐試。在Windows上安裝和使用適用於Java的協議緩衝區
1
A
回答
2
- 下載從https://github.com/google/protobuf/releases Win32的二進制 - 在寫作的時候,最新的是3.3.0,因此相應的二進制是https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-win32.zip
- 提取該壓縮文件到一個目錄中,並在此添加bin目錄到系統路徑環境變量。
- 簽出Github存儲庫的源代碼 - 由於v3.3.0是最新版本,因此簽出相同的標籤而不是主標籤。
- 將步驟1中的protoc.exe複製並粘貼到簽出位置的src目錄下。
- 繼續運行行家任務這裏提供 -
- 複製
protoc.exe
從步驟1的上方,以一種優選的位置,並確保該位置被添加 - https://github.com/google/protobuf/tree/master/java
到庫運行examples進入
Path
環境變量。爲確保正確完成,請打開新的命令提示符並運行protoc --version
以查看您安裝的相應版本。 - 複製
創建Java包用於與所述實施例中給出的協議格式 - 在
addressbook.proto
定義爲解釋here -protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto
- 此這是需要的編譯代碼示例包com.example.tutorial
下生成所需的AddressBookProtos
類。一旦生成的代碼在示例類路徑中,代碼就可以執行。
1
作爲一個簡單的方法,特別是對於臨時用戶,你也可以只:
- 複製和粘貼您的模式片段在這裏:https://protogen.marcgravell.com
- 選擇 「(protoc)的Java」(或任何語言需要),並單擊「生成」
- 你的代碼,或驚歎複製出在你的架構片段在編輯器中的錯誤和警告
電流限制:
- 只有一個輸入和輸出文件可 - 這純粹是UI的問題(我需要一個標籤編輯器中工作,希望這周)
- 這也意味着,「進口「嚴重受限 - 儘管一些內置的進口可以正常工作(」google/protobuf/duration「)。原型「,例如,將解決並正常工作)
- 當前,如果」非protoc「分析器檢測到語法錯誤,並且您的模式包含單詞」import「,它將不會調用」protoc「 - 這是我調查protoc是否曾經被濫用以訪問意外的文件
相關問題
- 1. 在Windows上安裝協議緩衝區
- 2. 用於VB6的協議緩衝區?
- 3. 如何在Windows上使用Python協議緩衝區?
- 4. 如何使用Objective C/iOS 5 SDK安裝協議緩衝區?
- 5. Android和協議緩衝區
- 6. 協議緩衝區和Hadoop
- 7. 協議緩衝區在Windows C++ .Net
- 8. 協議緩衝區
- 9. 在ScalaPB中使用協議緩衝區生成Java和Scala類
- 10. 是適用於長期序列化的協議緩衝區?
- 11. 協議緩衝區精簡版與常規協議緩衝區
- 12. 谷歌協議緩衝區不適用於UDP?
- 13. 如何使用協議緩衝區?
- 14. 如何使用協議緩衝區?
- 15. Java中的擴展協議緩衝區
- 16. 協議緩衝區中的Java HashMap
- 17. Java中的編碼協議緩衝區
- 18. 谷歌協議緩衝器安裝failling
- 19. 在Matlab中使用協議緩衝區Java綁定
- 20. 使用協議緩衝區無法在Java中找到符號
- 21. 在Java EE中使用協議緩衝區?
- 22. Java協議緩衝區 - 消息大小
- 23. Java序列與協議緩衝區
- 24. Java協議緩衝區Ascii序列化
- 25. Java協議緩衝區 - 反射
- 26. 使用RProtoBuf(協議緩衝區)從R調用Java函數
- 27. 擴展協議緩衝區
- 28. gson vs協議緩衝區
- 29. 協議緩衝區記錄
- 30. 協議緩衝區錯誤
這是一個很好的工具,你已經想出了,肯定會幫助大多數用戶生成存根,這是一種罕見的活動。在使用Java和其他幾種語言進行嘗試時,它並不適用於我。 –
@PavanKumar呵呵,這很奇怪 - 我在發佈之前嘗試過使用java(針對我自己的一些東西);您的模式是否涉及非導入-default protos?如果是這樣的話:請參閱上面的限制;我打算儘快更改爲標籤編輯器ch將啓用多個輸入和輸出,包括「導入」。如果它不是「進口」的限制,我會非常有趣地知道你*做了什麼*看到 –
@PavanKumar哦,我看到了問題 - 我可以解決這個問題 - 一秒...;更新:問題是我沒有檢查生成文件的子文件夾 - 我想我自己的煙霧測試沒有指定包,所以:沒有文件夾;修復正在部署當前 - 稍後,這應該作爲一個不重要的示例工作https://protogen.marcgravell.com/#gf906e3bfba5fe679f12b46ef54741563(和[這裏是修復提交](https://github.com/mgravell/protobuf -net /提交/ e38b76bbf63f2c3e686627f035eb685ae3abea16)) –