Jboss启动报错:
Unrecognized VM option 'MaxPermSize=256m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
翻译过来就是:
无法识别的VM选项“MaxPermSize=256m”
错误:无法创建Java虚拟机。
错误:发生致命异常。程序将退出。
意思是VM选项“MaxPermSize=256m”在当前虚拟机不可用,其实原因是:
在jdk8(含)以后,永久代被移除了,所以虚拟机的启动参数MaxPermSize(最大永久代大小)不可用。
我的Jboss配置的jdk是17,当然没有MaxPermSize选项,所以报这个错就很正常了。那么这个错误怎么解决呢?有两种方案:
1.jdk版本更换到8以前;
2.移除MaxPermSize这个虚拟机启动参数即可。
关于第一点,我们开始试验一下。
首先,下载jdk7,然后通过ftp工具上传到linux中:
第二步,解压后的java-se-7u75-ri就是jdk7,打开看一下:
第三步,配置jdk环境变量。
# 编辑profile文件,修改jdk环境变量为jdk1.7 vim /etc/profile
保存退出,然后使用命令让文件立即生效:
# 使该文件立即生效 source /etc/profile
第四步,查看jdk版本:
结果并没有什么卵用,这其实不应该的,除非配置错误了,但是配置的时候已经仔细检查过了,那可能就是需要重启ssh工具,我们重启之后再试。
我们看到已经成功配置jdk为1.7,然后启动Jboss。
第五步,启动Jboss。
切换到Jboss的安装目录,然后到bin目录下,启动脚本standalone.sh。
我们也看到了我们配置的jdk1.7的环境变量,以及Jboss的环境变量,还有一些虚拟机启动参数等信息。但是下面显示报错了:
以上是全部报错信息,其实最重要的一句话是:
Caused by: java.io.FileNotFoundException: /opt/jboss/jboss-as-7.1.1.Final/standalone/log/boot.log (没有那个文件或目录)
第六步,解决Jboss启动报错。
切换到对应目录,发现确实没有log目录,当然也没有对应的boot.log文件,我们手动创建log文件夹以及boot.log文件,再启动试试。
第七步,启动成功。
第八步,测试是否启动成功。
打开另外一个窗口,然后测试:
curl http://127.0.0.1:8080
然后我们看到:
Welcome to JBoss Application Server 7 Welcome to AS 7 Your JBoss Application Server 7 is running.documentation | Quickstarts | Administration Console
JBoss AS Project | User Forum | Report an issueTo replace this page set "enable-welcome-root" to false in your server configuration and deploy your own war with / as its context path.
我们看到这其实就是一个HTML页面。
继续测试对应的端口,我们可以看我们说启动成功那个截图,上面监听了4447端口、9999端口、9990端口。
ss -an | grep 8080 ss -an | grep 9999 ss -an | grep 9990
我们也可以使用命令:
curl -I 127.0.0.1:8080
来验证启动情况。
上面几个红框,第一个是我们使用的命令;第二个是HTTP返回码,200表示ok;第三个是最后更新时间,显示的是2012年,也就是我们当前版本的Jboss最后更新时间;第四个,也就是最后一个是我们当前操作时间:2022年2月2日11:10:17,星期二,格林威治标准时间。其实这个时间是不准确的,或者说不是我们中国目前的北京时间,我们目前的时间是19:17分。如果是对应我们输入命令时的时间,应该对应的是19:10分。这样我们看到相差了8个小时,这个是Jboss默认的时区设置问题。上面我们说了,它显示的是格林威治标准时间,而格林威治标准时间比北京时间慢了8个小时,如果我们百度格林威治标准时间的话,显示如下:
关于时间的话我们就清楚了,回头设置Jboss的时区即可。



