如何将 Thrift 导入 Java 程序?

How to import Thrift into Java program?

我正在为也使用 Thrift 的学校编写 Java 程序。 问题不在于一般programm/programm-logic本身,而只是导入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 代码的实现,它自己再次导入一些 Thrift-类。此文件在此命名为 syncautohersteller

编辑:教授推荐使用 .jar 文件的方法。
当前项目结构(如 InteliJ 中所示):

现在的问题是所有 Thrift 导入语句都会抛出错误,例如

java: package org.apache.thrift does not exist

package javax.annotation does not exist

很明显我做错了什么。 有人知道如何解决这个问题吗?


(1) 在使用 ./configuresudo makesudo make install 并尝试通过 运行 “~/Downloads/thrift-0.13.0$ thrift –version” 验证结果

Thrift version 0.13.0

您可以使用 Gradle 以最简单的方式做到这一点,如下所示:

build.gradle.kts:

repositories {
    mavenCentral()
}

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

In IntellJ Idea to add external 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. Select 第一个结果
  4. Select你需要的版本
  5. 复制maven依赖

    org.apache.thrift 节俭 0.13.0

  6. 将 Maven 依赖项添加到您的 pom.xml 文件

  7. 执行一个mvn clean install,在IntelliJ中点击以下按钮后

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