У меня есть файл xxx.proto
. Я скачал компилятор protobuf и установил его. Затем я дал эту команду
protoc --java_out=./ xxx.proto
и это сгенерировало мой xxx.java
Теперь я хочу скомпилировать этот файл в файл класса, который я могу использовать с Scala.
javac xxx.java
Что дает мне эту ошибку
xxx.java:7: package com.google.protobuf does not exist
com.google.protobuf.ExtensionRegistry registry) {
^
xxx.java:12450: package com.google.protobuf.Descriptors does not exist
private static com.google.protobuf.Descriptors.Descriptor
^
xxx.java:12453: package com.google.protobuf.GeneratedMessage does not exist
com.google.protobuf.GeneratedMessage.FieldAccessorTable
...
...
...
100 errors
Теперь я догадался, у него нет пакета.
Поэтому я скопировал файлы классов пакета com.google.protobuf в ту же папку, где существует xxx.java. Примечание. Я не скомпилировал этот пакет. Я скачал флягу от другого расширения, у которого были файлы фляги. Поэтому я их извлек. Теперь мой текущий путь, где находится xxx.java, имеет com / google / protobuf / * .class библиотеки protobuf. * 1015 *
Я снова ввел команду javac.
На этот раз я получил другой набор ошибок -
xxx.java:10: cannot find symbol
symbol : class MessageOrBuilder
location: package com.google.protobuf
extends com.google.protobuf.MessageOrBuilder {
^
xxx.java:215: cannot find symbol
symbol : class MessageOrBuilder
location: package com.google.protobuf
extends com.google.protobuf.MessageOrBuilder {
^
xxx.java:608: cannot find symbol
symbol : class MessageOrBuilder
location: package com.google.protobuf
extends com.google.protobuf.MessageOrBuilder {
^
xxx.java:1017: cannot find symbol
symbol : class MessageOrBuilder
location: package com.google.protobuf
extends com.google.protobuf.MessageOrBuilder {
..... 100 errors
Я даже пытался скомпилировать исходные файлы, поставляемые с google protobufs. Сгенерированные Java-классы дают те же ошибки.
Есть идеи что делать ??
Ответ
Хорошо. Спасибо всем.
Основная проблема в том, что пакет компилятора буферов протокола от Google по умолчанию не создает библиотеку Java. Я предполагал, что это делает и устанавливает это. Это действительно так, если вы работаете с Maven. Но у меня не было Maven
Итак, я скомпилировал код в /java/src
и использовал банку.
^