Thrift 0.2.0 Java 开发环境安装

简介: Thrift是一个跨语言的RPC实现. 是由Facebook公司开源出来的。非常好用。对于C++开发环境的安装相对简单,只要在安装包解压以后,按照README文件的说明安装即可。但是对于Java开发环境的安装,却没有什么说明。本文仅对Java开发环境的安装,做一些说明,供大家参考(本文假设您的JD.
Thrift是一个跨语言的RPC实现. 是由Facebook公司开源出来的。非常好用。对于C++开发环境的安装相对简单,只要在安装包解压以后,按照README文件的说明安装即可。但是对于Java开发环境的安装,却没有什么说明。本文仅对Java开发环境的安装,做一些说明,供大家参考(本文假设您的JDK已经安装好了)。

Thrift Java的编译需要Ant。而且使用了一个特殊的包slf4j。并且在使用ant编译thrit的过程中,还需要下载一些依赖的Java库。所以最好,安装的机器上是可以访问Internet的。否则会非常麻烦。建议安装Ant的最新版本,否则,可能编译会有些错误,导致无法编译。在这里,我取的是最新的1.8.2.

1.安装Ant
下载apache-ant-1.8.2-bin.tar.gz
解压apache-ant-1.8.2-bin.tar.gz到/usr/local
则在/usr/local下会出现一个目录apache-ant-1.8.2
设置环境变量ANT_HOME
ANT_HOME=/usr/local/apache-ant-1.8.2
把路径/usr/local/apache-ant-1.8.2加入到系统的环境变量PATH中.


2.安装slf4j
下载slf4j-1.6.1.tar.gz
解压slf4j-1.6.1.tar.gz到/usr/local下
则在/usr/local下会出现一个目录slf4j-1.6.1
在系统的环境变量CLASSPATH中增加/usr/local/src/slf4j-1.6.1/slf4j-api-1.6.1.jar和/usr/local/slf4j-1.6.1/slf4j-simple-1.6.1.jar。我的CLASSPATH的内容如下:
./:/usr/local/slf4j-1.6.1/slf4j-api-1.6.1.jar:/usr/local/slf4j-1.6.1/slf4j-simple-1.6.1.jar

3.Ant使用代理服务器的配置
我的服务器上不能直接访问Internet,需要配置让ant来使用代理连接internet(实际上是ant在启动时,传给java虚拟机的参数)。
如果你的机器不需要配置代理,可以直接连接internet,则可以跳过此步骤

ant使用代理,通过配置环境变量ANT_OPTS来实现,比如:
export ANT_OPTS="-Dhttp.proxyHost=192.168.0.105 -Dhttp.proxyPort=3128"
这样设置告诉ant,在连接internet时,使用代理服务器192.168.0.105, 端口3128

5.编译thrift
cd thrift-0.2.0/lib/java
ant
编译完成以后会在当前目录下出现一个libthrift.jar
把libthrift.jar拷贝到/usr/local/lib下(这个位置是因为在thrift的tutor中,java sample code的build.xml中指明了要在/usr/local/lib找到这个jar文件)。
然后把/usr/local/lib/libthrift.jar也加入到CLASSPATH中。

6.编译tutorial
cd thrift-0.2.0/tutorial
thrift -r --gen java tutorial.thrift
这个时候会产生与tutorial.thrift对应的Java源代码
cd java
ant

在编译的时候,如果java的版本比较新的话,可能会产生一些错误,例如,在我的机器上,就报一些语法错误,我的是java 1.6.0

在我的机器上报的错误,有case Operation.ADD错误,原因是在新版本的java中,case语句里面用枚举值的时候,不需要在枚举常量前写上类的名称,直接用ADD即可。

另外一个错误是不允许吧枚举值复制给一个int值,例如io.what = work.op。可以改为io.what = work.op.ordinal()。


编译完成以后,JavaServer.class和JavaClient.class都会生成在当前目录下的build目录里,要执行的话,要进入这个目录,先运行java JavaServer,然后在另外一个终端上运行java JavaClient, 则应该看到JavaClient成功显示响应。


转载自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=686647&id=2148711

目录
相关文章
|
12天前
|
Oracle Java 关系型数据库
搭建Java开发环境:
搭建Java开发环境:
28 0
|
17天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
50 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
14天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
33 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
|
15天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的蛋糕商城管理系统
基于Java+Springboot+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
40 3
基于Java+Springboot+Vue开发的蛋糕商城管理系统
|
15天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的美容预约管理系统
基于Java+Springboot+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的美容预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
28 3
基于Java+Springboot+Vue开发的美容预约管理系统
|
17天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的房产销售管理系统
基于Java+Springboot+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的房产销售管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
35 3
基于Java+Springboot+Vue开发的房产销售管理系统
|
18天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的反诈视频宣传系统
基于Java+Springboot+Vue开发的反诈视频宣传系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的反诈视频宣传管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
47 4
基于Java+Springboot+Vue开发的反诈视频宣传系统
|
19天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的健身房管理系统
基于Java+Springboot+Vue开发的健身房管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的健身房管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
47 5
基于Java+Springboot+Vue开发的健身房管理系统
|
15天前
|
存储 网络协议 Java
Java NIO 开发
本文介绍了Java NIO(New IO)及其主要组件,包括Channel、Buffer和Selector,并对比了NIO与传统IO的优势。文章详细讲解了FileChannel、SocketChannel、ServerSocketChannel、DatagramChannel及Pipe.SinkChannel和Pipe.SourceChannel等Channel实现类,并提供了示例代码。通过这些示例,读者可以了解如何使用不同类型的通道进行数据读写操作。
Java NIO 开发
|
17天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的医院门诊预约挂号系统
基于Java+Springboot+Vue开发的医院门诊预约挂号系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的门诊预约挂号管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
46 2
基于Java+Springboot+Vue开发的医院门诊预约挂号系统