Ошибка при компиляции сгенерированных комиссионных классов с Java 1.5

0
'Platform': Windows 7, MinGW, MSYS, Java 1.5

У меня есть компилятор бережливого 0.9.1 (предварительно построенный для окон) и источник. Я использую Ant для создания java-библиотеки. Я создаю один трилик idl и компилирую его с помощью компилятора. Нет проблем с генерацией файлов кода. Я добавляю эти файлы в свой проект и добавляю slf4j (скачанный со своего сайта) и libthrift. Большинство ошибок, которые были у меня ранее (импорт и т.д.), Исчезли, за исключением ошибок, связанных с переопределяющими методами. Поэтому в основном он жалуется:

Метод clear() типа Server должен переопределять метод суперкласса

и аналогично для compareTo, write, read и т.д. Короче говоря, он жалуется на все методы, которые переопределены. Это все сработало сгенерированный код компилятора, и я ничего не изменил.

Есть ли какая-то несовместимость? Я не могу сказать об этом. Я попытался удалить, а затем добавить библиотеки, я также попробовал очистить, обновить, проверить проект, но ошибки все еще существуют.

Я также пытался скомпилировать код (бережливый код), но MinGW также является большой головной болью. Он не может найти configure даже если я ее установил. И если я бегу msys консоль, он может configure, но не может make жалуясь inttypes.h нет (что не в MSYS включает каталог, но присутствует в MinGW включает каталог.).

Любое предложение будет оценено по достоинству.

  • 0
    Это связано со stackoverflow.com/questions/26631900/… или это что-то еще?
  • 1
    Кстати, в Windows не используйте MinGW. В папке компилятора находится проект Visual Studio. В основном вам нужна только поддержка flex / bison, в Интернете есть установочный пакет для Windows, который подойдет. IIRC это все. Работает как шарм. Насколько мне известно, сборка MinGW больше не работает в Windows из-за множества ошибок, связанных с MinGW. Поскольку проект VS работает так хорошо, в PITA больше нет необходимости.
Показать ещё 4 комментария
Теги:
compilation
thrift

1 ответ

1
Лучший ответ

Вы используете Java 5? С Java 5 @Override не ищет методы на интерфейсах, только на суперклассах.

Если вы используете компилятор Java 5, пытающийся использовать более поздний javac (желательно 7 или 8), и это видно.

РЕДАКТИРОВАТЬ:

Не уверен, что это в вашей версии Thrift, но у меня похоже, что есть флаг java5 который вы указываете при генерации кода, чтобы указать, что вы хотите, чтобы сгенерированный код был совместимым с Java 5

java (Java):
    beans:           Members will be private, and setter methods will return void.
    private-members: Members will be private, but setter methods will return 'this' like usual.
    nocamel:         Do not use CamelCase field accessors with beans.
    fullcamel:       Convert underscored_accessor_or_service_names to camelCase.
    android:         Generated structures are Parcelable.
    android_legacy:  Do not use java.io.IOException(throwable) (available for Android 2.3 and above).
    java5:           Generate Java 1.5 compliant code (includes android_legacy flag).
    reuse-objects:   Data objects will not be allocated, but existing instances will be used (read and write).
    sorted_containers:
                     Use TreeSet/TreeMap instead of HashSet/HashMap as a implementation of set/map.
  • 0
    Благодарю. Не знал этого.
  • 0
    Любой способ, которым я могу заставить это работать в 1.5 (просто удалите аннотации)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню