簡體   English   中英

不帶.proto的protobuf jar升級命名空間

[英]Upgrade namespace of protobuf jar without .proto

我有一個jar myGenerated.jar ,它是由某些版本的Google協議緩沖區(不確定哪個版本)生成的。 該jar包含對命名空間com.foo.bar類的com.foo.bar 我想更改它,使類位於名稱空間com.baz 不幸的是,我沒有用於生成jar的.proto文件-它似乎已被遺忘。

沒有.proto,有什么方法可以更改生成的類的名稱空間嗎?

或者(因為這很容易導致前一個答案),我可以對現有jar中的.proto進行反向工程嗎?

使用dirtyJOE編輯您的字節碼,並更改所有程序包名稱(和文件夾,如果在jar中是分層結構的話)。

您應該能夠使用協議緩沖區反射API對原始.proto文件內容進行反向工程。 對於您關心的每種消息類型MyMessage ,可以調用MyMessage.getDescriptor() ,然后使用此處描述的API檢查描述符以確定存在哪些字段,依此類推。 我認為您無法逐字恢復.proto文件的內容(例如,可能無法注釋),但是您至少可以恢復所有類型及其字段名稱和標記號。 諸如MyMessage.getDescriptor().getFile().toProto()應該可以為您提供.proto文件中仍然可用的所有信息。

在Google或duckduck上鍵入Java反編譯器。

這是一些不錯的http://jd.benow.ca/

選擇獨立或Eclipse插件以獲取原始Java文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM