【发布时间】:2020-01-15 20:26:18
【问题描述】:
我正在为学校编写一个也使用 Thrift 的 Java 程序。 问题不在于一般程序/程序逻辑本身,而只是导入 Thrift(在特定部分使用它)。
我的基本 - 可能是错误的 - 理解是您编写程序代码(此处为 empfaenger.java),然后通过添加所需的导入语句将 Thrift 导入此文件,例如:
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket ;
import org.apache.thrift.transport.TTransport;
并在实际可以从中导入它们的同一目录中添加一个文件,在本例中为libthrift-0.13.0.jar。(1) 然后您稍后还可以导入一个已编译的 .thrift 文件,该文件具有 IDL 的特定于语言的实现-code,即自己再次导入一些 Thrift 类。这个文件在这里命名为syncautohersteller。
编辑:教授推荐使用 .jar 文件的方法。
当前项目结构(如 InteliJ 中所示):
现在的问题是所有 Thrift 导入语句都抛出错误,例如
empfaenger.java
java: 包 org.apache.thrift 不存在
syncautohersteller
包 javax.annotation 不存在
很明显我做错了什么。 有人知道如何解决这个问题吗?
(1) 在使用 ./configure、sudo make 和 sudo make install 安装 Thrift 后,我从 Thrift 文件夹(Home/Downloads/thrift-0.13.0/lib/java/build/libs 然后是文件夹中三个 .jar 文件中的第一个)获取了文件,并且尝试通过运行“~/Downloads/thrift-0.13.0$ thrift –version”来验证结果
Thrift 版本 0.13.0
【问题讨论】:
-
你的程序能编译和运行吗?仅仅是 IntelliJ 无法确定导入的位置,还是您遇到无法构建项目的普遍问题?
-
jars必须添加到模块依赖中,见jetbrains.com/help/idea/…。
标签: java intellij-idea import thrift