iOS实现XMPP通讯(一)搭建Openfire

Openfire官网下载地址:https://igniterealtime.org/downloads/ (也是Spark客户端的下载地址)
Openfire下载并安装后,打开系统偏好设置,底部会出现Openfire

请添加图片描述

试图启动openfire,终端命令:

cd /usr/local/openfire/bin ./openfire.sh

出现报错信息:openfire Error: JAVA_HOME is not defined correctly. /System/Library/Frameworks/JavaVM.framework/Home
Openfire默认提供的路径是错误的,百度一下,说是要修改java_home路径,有两种方法解决:
方法一:修改/usr/local/openfire/bin/openfire.sh中JAVA_HOME的路径
方法二:系统全局声明JAVA_HOME的路径

查看JDK安装路径,终端命令:

/usr/libexec/java_home -V

请添加图片描述


以上电脑安装有2个JVM(JDK中包含了JRE,JRE中包含了JVM),简单说明:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home是系统自带的JRE路径 /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home是JDK路径 最底下的/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home表示当前系统默认使用自带的JRE路径

即当前JAVA_HOME的路径为/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home,为此我们需要切换到jdk 1.8.0_40版本的路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home。

方法一:修改/usr/local/openfire/bin/openfire.sh文件中JAVA_HOME的路径
由于openfire.sh文件是只读权限,需要给它赋予读写权限才能进行写入操作。一般来说给openfire.sh文件和其父文件夹bin赋予读写权限就能编辑openfire.sh文件,但后面执行openfire.sh脚本时发现,脚本需在/usr/local/openfire文件夹中创建一些文件夹及文件,如果权限不足会导致出现报错信息,为了避免这种情况,我们直接遍历/usr/local/openfire文件夹,给子目录和子文件都赋予读写权限,终端命令:

//-R表示遍历文件夹的子文件或子文件夹 sudo chmod -R 777 /usr/local/openfire

打开openfire.sh,在"Darwin*) darwin=true"下面第二行的位置替换"JAVA_HOME="后面的内容为/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home,如下:

请添加图片描述

方法二:系统全局声明JAVA_HOME的路径(推荐)
cd ~/.bash_profile,编辑.bash_profile文件,添加如下内容

export JAVA_HOME=http://www.likecs.com/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home PATH=$JAVA_HOME/bin:$PATH export PATH

然后让配置立即生效,终端命令:

source ~/.bash_profile

启动openfire(前提必须保证/usr/local/openfire子目录和子文件有读写权限),终端命令:

cd /usr/local/openfire/bin ./openfire.sh

iOS实现XMPP通讯(一)搭建Openfire

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxxpw.html