compiling/running Apache Thrift 在 Mac 上的类路径

classpath for compiling/running Apache Thrift on a Mac

我通过 brew 安装了 thrift。

brew install thrift

我按照这个例子: https://thrift-tutorial.readthedocs.io/en/latest/usage-example.html

我能够为 java 生成代码:

thrift --gen java multiple.thrift

我想编译 MultiplicationService.java 或 MultiplicationHandler.java 文件。

javac MultiplicationService.java
MultiplicationService.java:15: error: package org.apache.thrift does not exist

当通过 brew 安装 thrift 时,我应该在 mac 中使用什么类路径?

javac -cp ?? MultiplicationService.java

感谢 Erwin 关于使用 maven 的建议,我能够使这个 thrift 示例在我的 mac 上运行。

步骤如下:

  • 使用 mvn 快速入门创建一个简单的 mvn 项目:mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-thrift-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

  • 将所有 java 个文件放入文件夹:src/main/java/com/mycompany/app java 文件是:MultiplicationClient.java、MultiplicationServer.java、MultiplicationHandler.java(示例中的所有 3 个复制粘贴)和 MultiplicationService.java(由 thrift --gen 生成)

  • 将以下包添加到所有 4 个 java 文件中:package com.mycompany.app;

  • 将这个post底部的依赖添加到pom文件中。确保版本与brew安装的thrift相同

  • 编译项目:mvn package

  • 运行 服务器:mvn exec:java -Dexec.mainClass="com.mycompany.app.MultiplicationServer"

  • 运行 客户端在另一个终端:mvn exec:java -Dexec.mainClass="com.mycompany.app.MultiplicationClient"

依赖性:

<dependency>
  <groupId>org.apache.thrift</groupId>
  <artifactId>libthrift</artifactId>
  <version>0.11.0</version>
</dependency>