gpt4 book ai didi

java - 包 org.apache.thrift 不存在

转载 作者:搜寻专家 更新时间:2023-11-01 01:35:39 24 4
gpt4 key购买 nike

我正在尝试编写一个使用 thrift 的基本 Java 应用程序。我缺少的是一个可用的 jar 文件。

我已经从官方网站下载页面下载了 0.8.0 gz 版本的 thrift 并自己创建了 jar 存档(jar cf thrift-0.8.0.jar src/org)。我已将新的 jar 文件移动到我的项目目录中。然后,我将这个 jar 文件手动添加到项目中——我在 NetBeans IDE 中工作。一切似乎都应该正常工作,但事实并非如此——我想使用节俭库的任何地方都会出现红色错误消息。这是我的一段代码:

package com.blogspot.symfonyworld.thrift;

import com.blogspot.symfonyworld.thrift.server.MainService;
import org.apache.thrift.TException;

public class MainServiceHandler implements MainService.Iface {

@Override
public int add(int n1, int n2) throws TException {
return n1 + n2;
}

@Override
public int sub(int n1, int n2) throws TException {
return n1 + n2;
}

}

和另一个文件:

/**
* Autogenerated by Thrift Compiler (0.8.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
*/
package com.blogspot.symfonyworld.thrift.server;

import org.apache.thrift.scheme.IScheme;
import org.apache.thrift.scheme.SchemeFactory;
import org.apache.thrift.scheme.StandardScheme;

import org.apache.thrift.scheme.TupleScheme;
import org.apache.thrift.protocol.TTupleProtocol;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Set;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Collections;
import java.util.BitSet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MainService {

public interface Iface {

public int add(int n1, int n2) throws org.apache.thrift.TException;

public int sub(int n1, int n2) throws org.apache.thrift.TException;

}

public interface AsyncIface {

public void add(int n1, int n2, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.add_call> resultHandler) throws org.apache.thrift.TException;

public void sub(int n1, int n2, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.sub_call> resultHandler) throws org.apache.thrift.TException;

}

当我运行构建时,出现以下错误:

ant -f /var/www/laughing-thrift-duck jar
init:
Deleting: /var/www/laughing-thrift-duck/build/built-jar.properties
deps-jar:
Updating property file: /var/www/laughing-thrift-duck/build/built-jar.properties
Compiling 2 source files to /var/www/laughing-thrift-duck/build/classes
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/MainServiceHandler.java:4: package org.apache.thrift does not exist
import org.apache.thrift.TException;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:9: package org.apache.thrift.scheme does not exist
import org.apache.thrift.scheme.IScheme;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:10: package org.apache.thrift.scheme does not exist
import org.apache.thrift.scheme.SchemeFactory;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:11: package org.apache.thrift.scheme does not exist
import org.apache.thrift.scheme.StandardScheme;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:13: package org.apache.thrift.scheme does not exist
import org.apache.thrift.scheme.TupleScheme;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:14: package org.apache.thrift.protocol does not exist
import org.apache.thrift.protocol.TTupleProtocol;
# and many many more...

主要问题是:包 org.apache.thrift 不存在 - 为什么会这样?!

有人可以指出我在将自定义 jar 导入我的项目时做错了什么吗?我认为这与节俭无关,而是与一般的进口 jar 有关。

最佳答案

I've downloaded 0.8.0 gz version of thrift from the official website download pages and created the jar archive on my own (jar cf thrift-0.8.0.jar src/org)

您为什么要创建自己的 jar?为什么你用源文件创建它? jar 库必须至少包含字节码类,以供使用。

必须让thrift自己编译成jar然后使用:

  • 浏览到 /lib/java
  • 在终端运行ant
  • 检查构建文件夹,你会看到一个.jar
  • 用那个

关于java - 包 org.apache.thrift 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15435764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com