环境:Mac OS X 10.11.5, Java:1.8.0,Openfire:4.0.2
最近在研究IM,今天搭建IM环境,但是在安装Openfire的时候,安装之后从面板启动openfire,硬是无法启动,没辙,只能使用命令启动了。
启动openfire 首先设置下快捷启动命令路径,不然每次都得切换到目录,使用如下命令添加openfire快捷访问
vi ~/.bash_profile
export PATH="${PATH}:/usr/local/openfire/bin"
<pre name="code" class="plain">source ~/.bash_profile
启动:
openfire.sh
但是使用命令行启动的时候总是报如下错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/jivesoftware/openfire/starter/ServerStarter : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
在网上找了半天,有说java版本过高,又重新安装了一个java6,结果还是没有niao用
解决办法是设置JAVA_HOME,但是这提示也太奇葩了吧。本身安装java之后,无需设置java home,就可以直接使用java命令了。
使用命令 java_home 查找指定java home的位置:
/usr/libexec/java_home -V
结果如下:
Matching Java Virtual Machines (4):
1.8.0_91, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
1.7.0_79, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
在这里可以选择使用 java se 8 作为java home
设置java home的命令如下:
vi ~/.bash_profile
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home"
source ~/.bash_profile
重新启动openfire就可以了。