【问题标题】:How to import Thrift into Java program?如何将 Thrift 导入 Java 程序?
【发布时间】: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) 在使用 ./configuresudo makesudo 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


【解决方案1】:

在 IntellJ Idea 添加外部 Jars 中,您可以在以下问题中找到一些有用的信息:Correct way to add external jars (lib/*.jar) to an IntelliJ IDEA project


我建议你通过Maven来管理项目的依赖,它可以帮助你以更简单的方式将JAR依赖添加到类路径中。
首先,您必须按照in IntelliJ Idea documentation. 的说明将您的项目转换为 Maven 项目
然后您可以按照以下步骤操作:

  1. 转到Maven repository website
  2. 搜索Thrift
  3. 选择第一个结果
  4. 选择您需要的版本
  5. 复制maven依赖

    org.apache.thrift 节俭 0.13.0

  6. 将 maven 依赖添加到您的 pom.xml 文件中

  7. 在 IntelliJ 中单击以下按钮后执行 mvn clean install

    这个过程将帮助您和与您一起工作的人以更简单的方式管理项目的依赖关系。

【讨论】:

    【解决方案2】:

    您可以使用 Gradle 以最简单的方式进行操作,如下所示:

    build.gradle.kts:

    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation("org.apache.thrift:libthrift:0.13.0")
    }
    

    【讨论】:

      猜你喜欢
      • 2011-09-09
      • 1970-01-01
      • 2012-12-09
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 2017-06-21
      相关资源
      最近更新 更多