使用Java 1.5编译thrift生成的类时出错

使用Java 1.5编译thrift生成的类时出错,java,c++,eclipse,compilation,thrift,Java,C++,Eclipse,Compilation,Thrift,我有thrift 0.9.1编译器(为windows预构建)和源代码。我使用Ant构建java库。 我创建了一个节俭idl,并用编译器编译它。生成代码文件没有问题。 我在我的项目中添加了这些文件,并添加了slf4j(从他们的网站下载)和libthrift。 除了与重写方法相关的错误外,我以前遇到的大多数错误(导入等)都消失了。 因此,基本上它抱怨如下: 类型为Server的方法clear()必须重写超类方法 同样地,对于compareTo、write、read等,它抱怨所有被重写的方法。这都是t

我有thrift 0.9.1编译器(为windows预构建)和源代码。我使用Ant构建java库。 我创建了一个节俭idl,并用编译器编译它。生成代码文件没有问题。 我在我的项目中添加了这些文件,并添加了slf4j(从他们的网站下载)和libthrift。 除了与重写方法相关的错误外,我以前遇到的大多数错误(导入等)都消失了。 因此,基本上它抱怨如下:

类型为Server的方法clear()必须重写超类方法

同样地,对于
compareTo
write
read
等,它抱怨所有被重写的方法。这都是thrift编译器生成的代码,我没有做任何更改

有什么不兼容的地方吗?我真的找不到关于那件事的任何提及。我尝试过删除然后添加库,我也尝试过清理、刷新、验证项目,但错误仍然存在

我也尝试过编译代码(节俭代码),但MinGW也是一个非常头痛的问题。即使我已经安装了
configure
,它也找不到。如果我运行
msys
控制台,它可以
配置
,但不能
make
抱怨
inttypes.h
不存在(它不在msys include目录中,但在MinGW include目录中)


如有任何建议,将不胜感激

您正在使用Java 5吗?使用Java 5
@Override
不会在接口上搜索方法,只在超类上搜索

如果您使用的是Java5编译器,请尝试使用较新的javac(最好是7或8),请参阅其中的一个

编辑:

不确定这是否在您的Thrift版本中,但在我的版本中,似乎有一个名为
java5
的标志,您可以在生成代码时指定该标志,以指定希望生成的代码符合Java 5

`Platform`: Windows 7, MinGW, MSYS, Java 1.5

这与其他事情有关吗?顺便说一句,在Windows上不要使用MinGW。编译器文件夹中有一个Visual Studio项目。您基本上只需要flex/bison支持,web上有一个Windows somewehere安装包就可以了。IIRC仅此而已。工作起来很有魅力。据我所知,由于一系列与MinGW相关的bug,MinGW构建不再适用于Windows。既然VS项目运行得很好,就不再需要那个PITA了。这是第二个问题,我也可以从他们的网站上获得二进制文件。但主要问题是生成的代码没有编译,“但主要问题是生成的代码没有编译”——老实说,这很难相信。你能准备一个测试用例吗?我刚刚添加了你“忘记”提到的重要信息。谢谢。我不知道。我可以用任何方式让它在1.5中运行(只需删除注释)编辑我的答案,以提及java5标志,希望能有所帮助
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.