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

然后我们看到:

<!--
  ~ JBoss, Home of Professional Open Source.
  ~ Copyright (c) 2011, Red Hat, Inc., and individual contributors
  ~ as indicated by the @author tags. See the copyright.txt file in the
  ~ distribution for a full listing of individual contributors.
  ~
  ~ This is free software; you can redistribute it and/or modify it
  ~ under the terms of the GNU Lesser General Public License as
  ~ published by the Free Software Foundation; either version 2.1 of
  ~ the License, or (at your option) any later version.
  ~
  ~ This software is distributed in the hope that it will be useful,
  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  ~ Lesser General Public License for more details.
  ~
  ~ You should have received a copy of the GNU Lesser General Public
  ~ License along with this software; if not, write to the Free
  ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <title>Welcome to JBoss Application Server 7</title>
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
  <link rel="StyleSheet" href="as7_style.css" type="text/css">
</head>

<body>
  <div class="wrapper">
    <div class="as7">
      <img src="as7_logo.png" alt="JBoss Application Server 7... it's here." width="195" height="228" border="0">
    </div>

    <div class="content">
      <h1>Welcome to AS 7</h1>

      <h3>Your JBoss Application Server 7 is running.</h3>

      <p><a href="documentation.html">Documentation</a> | <a href="https://docs.jboss.org/author/display/AS71/Quickstarts">Quickstarts</a> | <a href="/console">Administration Console</a> <br/>

      <a href="http://www.jboss.org/jbossas"><br>
      JBoss AS Project</a> | <a href="http://community.jboss.org/en/jbossas/as7_users?view=all">User
      Forum</a> | <a href=
      "https://issues.jboss.org/browse/AS7">Report an issue</a></p>

      <p class="logos"><a href="http://jboss.org"><img src="jboss_community.png" alt="JBoss and JBoss Community" width=
      "254" height="31" border="0"></a></p>

      <p class="note">To replace this page set "enable-welcome-root" to false in your server configuration and deploy
      your own war with / as its context path.</p>
    </div>
  </div>
</body>
</html>

我们看到这其实就是一个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的时区即可。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐