【问题标题】:classpath for compiling/running Apache Thrift on a Mac在 Mac 上编译/运行 Apache Thrift 的类路径
【发布时间】:2019-02-25 01:25:45
【问题描述】:

我通过 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

【问题讨论】:

  • 通常您使用构建系统(例如 maven、ivy、gradle)并在构建定义文件中定义对 thrift 库的依赖。
  • 在使用 brew 安装 thrift 时,我不确定 libthrift 安装在哪里。我不确定是否已安装。
  • 没错,所以不要依赖“brew install thrift”。设置一个合适的构建文件,比如 maven 的 pom.xml,并在那里定义你的依赖。

标签: java homebrew thrift


【解决方案1】:

感谢 Erwin 关于使用 maven 的建议,我能够在我的 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;

  • 将本文底部的依赖项添加到 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 2012-09-07
    相关资源
    最近更新 更多