• 简介

Jitsi是一个开源的,安全(ZRTP加密),高质量的SIP/XMPP视频通话、会议、聊天、桌面共享、文件传传输。可以安装在你喜欢的操作系统中并且支持多种IM网络。Jitsi是当最功能最完整的高级通信工具。Jitsi让你可以在同一个软件中连到Facebook、GoogleTalk、XMPP、Windows Live、Yahoo!、AIM和ICQ进行通信。Jitsi应该算的上是最好的Java开源XMPP客户端之一,而且它还同时支持SIP协议,能够进行语音和视频聊天,功能不可谓不强大,最近研究了Jitsi,打算在它的基础上进行二次开发,下面写一下自己这方面的经验。http://jitsi.org/是Jitsi的官网,我们可以从download中获取最新的源码。

  • 环境配置

获取源码后,可以配置开发环境,我用的是eclipse,可以参照官网的教程来进行,在这就不多说了,见http://jitsi.org/index.php/Documentation/ConfigureEclipseNew,部署之后可以通过ant来运行,或者配置run configuration来运行都可以。

  • 打包发布

这个是Jitsi最难的地方了,官网上对于这方面没有很详细的说明,我研究了很久才搞定。

通用版本的打包比较容易,只需要安装一个izpack工具就可以了,见http://izpack.org/,配置好这个工具之后在jitsi主目录下进入resource/install文件夹,运行build.xml文件中的 build-installation-generic 生成一个jar包。需要注意的是这个通用版本你必须先安装jre才能够运行。

在windows上面进行打包就比较烦了,需要一系列工具,包括:

  1. cygwin     用于在windows上模拟Linux环境,装好之后可以直接在命令行下执行linux命令比如ls,top等。
  2. mingw     主要使用它的gcc和make工具,用于将Jitsi的一些c语言程序直接编译为windows下的exe文件。
  3. 7zip          用于压缩安装程序
  4. wix            微软提供的工具,可以用来制作windows下的安装引导程序,例如做成msi文件。
  5. jre             提供内置的Java运行环境。

我们一个一个进行安装,由于对C语言不熟悉,在安装cygwin和mingw的时候浪费了N多时间。

首先是cygwin,在http://www.cygwin.com/上点击setup.exe进行安装,具体过程见http://apps.hi.baidu.com/share/detail/30458811,最好装在c:/cgywin目录,将此目录/bin加入环境配置变量path中。
        然后是mingw,在http://www.mingw.org/上用mingw-get-inst.exe进行安装,安装时只需要选择gcc就可以了,最好装在c:/mingw/x86目录,将此目录/bin加入环境配置变量path中,安装好了之后写一个c程序,用gcc试验一下,成功编译即可。
        7zip直接安装就行了,不需要做什么配置。
        wix我用的是3.5的版本,需要.net framework4.0支持,装完后将安装目录(不需要/bin了)加入环境配置变量path中。将jre所在的目录修改与ant-build-config.properties 中一致即可。
       下面在cygwin命令行中进入jitsi主目录下resource/install文件夹,运行ant build-installation-wix ,一路等待,打好OK,有可能会碰到几个问题,解决方案一起给出。

  • makefile的问题

ant报错如下:

[exec] process_begin: CreateProcess((null), C:/mingw/x86/bin/gcc.exe -dumpmachine, ...) failed.
     [exec] makefile:45: *** target pattern contains no `%'.  Stop.

这个是gcc编译问题问题,打开jitsi主目录下src/native/windows/run文件夹下的Makefile,修改下面两行

cygwin.target.dir := "$(TARGET_DIR)"

修改为

cygwin.target.dir := $(TARGET_DIR)

然后

-rm.exe -f ../../../../resources/install/windows/config.h
      echo.exe -e '#define PRODUCTNAME "$(PRODUCTNAME)"\n#$(DEFINE_PACKAGECODE)' > $(cygwin.target.dir)/config.h

修改为
      echo #define PRODUCTNAME "$(PRODUCTNAME)" > $(cygwin.target.dir)/config.h
      echo #$(DEFINE_PACKAGECODE) >> $(cygwin.target.dir)/config.h

注意不要用任何空格,不然会出错。

  • msi压缩成exe的问题

ant报错如下:

[exec] C:/mingw/bin/gcc.exe -O2 -Wall -Wreturn-type -DWINVER=0x0502 -D_WIN32_WINNT=0x0502 -I"C:\Users\wuch\workspace\Jitsi/release/windows/tmp" -DBSPATCH_API_STATIC -DBZ2_API_STATIC -I. -I./include -I. -DLZMA_API_STATIC -I./include -I./api -I../run bspatch.c lasterror.c ../run/registry.c setup.c "C:\Users\wuch\workspace\Jitsi/release/windows/tmp"/setup.res -mwindows -L./lib/ -L. -L./lib/ -L./.libs -o "C:\Users\wuch\workspace\Jitsi/release/windows/tmp"/setup.exe -ladvapi32 -lbz2 -llzma -lole32 -lshell32
     [exec] setup.c:1770:1: warning: 'Setup_wstr2str' defined but not used
     [exec] c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find -lbz2
     [exec] c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find -llzma
     [exec] collect2: ld returned 1 exit status
     [exec] make.exe: *** [C:\Users\wuch\workspace\Jitsi/release/windows/tmp/setup.exe] Error 1

这个问题是因为make的时候找不到相应的动态链接库,我们在安装mingw的时候少安装了libarchive库,命令行进去mingw安装目录(c:/mingw/bin),运行mingw-get install libarchive,会自动安装libarchive库,再次编译OK。

Jitsi(SIP communicator)的环境部署和打包发布相关推荐

  1. 拾壹博客拆解,docker环境部署加自动化发布(一)

    前言 一直想搭建一个属于自己的博客,之前使用过Wordpress,但是觉得太笨重了,很多功能都不是自己需要的,然后有一天摸鱼摸到了拾壹博客.感觉这个项目虽然功能少,但是基本上架子都有了,自己想要的功能 ...

  2. cocos creator入门教程(十七)—— creator_h5打包发布优化技巧_android环境搭建与打包发布

    android环境搭建 h5/android 打包发布 h5打包发布 1:引擎模块裁剪,减少引擎体积; 项目----项目设置----模块设置:对于游戏中没有使用到的组件,都不需要勾选.来减少引擎文件的 ...

  3. vagrant box php开发环境配置 -- 重新打包发布vagrant box

    2019独角兽企业重金招聘Python工程师标准>>> 现在基本差不多了,可以重新打包发布了 打包 Usage: vagrant package [options] [name|id ...

  4. Vue项目部署,打包发布上线

    参考vuecli官方文档 一.构建打包 在发布上线之前,我们需要执行构建打包,将 .less..vue..js 等相关资源进行编译打包,转换成浏览器可以直接识别运行的普通 css.js.html. # ...

  5. CentOS7 + Xshell6 + Xftp6 + Nginx+ Gunicorn环境部署与项目发布

    具体步骤 1. 链接服务器 你需要拥有一个服务器,我是通过Xshell6 连接上阿里云服务器(CentOS7系统)的. Xshell6 + Xftp6 阿里云操作系统CentOS7Server 2. ...

  6. Java项目构建打包规范,jenkins2.121.1构建java项目环境,一键打包发布

    该版本为2.121.1,其他版本会稍有不同,仅做参考 1.登录jenkins后,点击左上角"新建任务". 2.填写任务名称,然后选择构建类型(一般是选择构建一个maven项目) 3 ...

  7. 关于测试环境部署的那些事儿

    ⾸次部署 ⼀.安装JDK(Linux) 注:在安装JDK之前,先确认是否有系统⾃带的JDK,如有,就先卸载系统JDK之后然后再在Linux中安装JDK. 1.查看系统中是否有⾃带的JDK rpm -q ...

  8. eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任务

    转自:http://my.oschina.net/mkh/blog/340112 1 eclipse中hadoop环境部署概览 eclipse中部署hadoop包括两大部分:hdfs环境部署和mapr ...

  9. Webpack介绍和使用(配置环境变量,打包依赖)

    webpack介绍和使用 webpack是一个前端模块化打包工具,它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源.主要由入口,出口,loader,plugins四个 ...

最新文章

  1. 电子邮件的故事:令人吃惊的预测
  2. 跨平台视频通信项目-OpenTok
  3. 五十五、手把手教你从零到一,完成淘宝数据分析案例
  4. SpringSecurity分布式整合之jwt和rsa说明
  5. 深入Java关键字null
  6. 下列选项中 采用边界值平滑_数据挖掘期末考题(答案).doc
  7. hello python jpush_Python人脸识别 + 手机推送,老板来了你就会收到短信提示
  8. YOLOX: Exceeding YOLO Series in 2021 --- Study Notes
  9. @media实现网页自适应中的几个关键分辨率
  10. js两个日期对比大小
  11. python--unicode汉字编码表实现汉字输出
  12. 手机编写java的软件_手机上可以用来学习编程的软件有哪些?
  13. 蛋疼的时候写三消游戏(一)
  14. 运用Python——劳拉下棋_四连环游戏_重力四子棋游戏(代码与游戏判定)
  15. 查询-SPJ练习2参考答案
  16. 世界时间查询服务器(一)
  17. 我发现一个地方能免费领取价值198元的手环,具有能量并且有高人加持过的,只要关注微信就可以免费领取
  18. 不需编程也可实现钉钉自动打卡
  19. [ARM]GIC相关知识
  20. 相机标定-opencv单应性矩阵实现平面坐标标定(kinect v1)

热门文章

  1. CAD命令:修剪和延伸命令的使用技巧汇总(上)
  2. 10 综合应用案例:“烤地瓜”
  3. 双键的Map,Table的rowKey+columnKey+value方法简单应用
  4. **JAVA入门基础2**(系列更新)———JAVA 基础变量
  5. mysql脑裂_说说Keepalived的脑裂
  6. Knowledge Graph生物信息【论文阅读笔记】
  7. angularJs滚动条
  8. 机器学习-集成学习(ensemble learning)
  9. 【随笔】谷歌浏览器+终端命令行下载美拍视频
  10. 我被 Kotlin 和 Android 两个官方约谈了