初始化VM时出错:在Centos 7上以普通用户身份执行jar文件时,无法为代码缓存保留足够的空间

jgovgodb  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(192)

我有一台Centos 7计算机,内存为64GB(可用内存为49GB),在尝试以普通用户身份使用以下命令执行jar文件时遇到问题:
java -jar jarfile.jar
它返回错误:
Error occurred during initialization of VM
Could not reserve enough space for code cache
但是,当我切换到root用户并执行相同的命令时,它成功运行,我已经检查了执行jar文件的用户是所有者,文件的权限设置为:
-rw-rw-r--
我还检查了机器上是否有足够的可用空间。
有谁能告诉我是什么原因导致了这个问题,以及我如何解决这个问题,使jar文件能够作为一个普通用户成功执行?
谢谢

eufgjt7s

eufgjt7s1#

我使用以下内容更新了/etc/profile以解决

LIMITUSER=$USER
        if [ -e "/usr/bin/whoami" ]; then
                LIMITUSER=`/usr/bin/whoami`
        fi
        if [ "$LIMITUSER" == "root" ]; then
                ulimit -n 6144 -u 14335 -m unlimited -d unlimited -s 8192 -c 1000000 -v unlimited 2>/dev/null
        elif  [ "$LIMITUSER" == "uptime" ]; then
                 ulimit -n 1024 -u 2047 -m unlimited -d unlimited -s 8192 -c 1000000 -v unlimited 2>/dev/null
        else
                ulimit -n 6144 -u 14335 -m unlimited -d unlimited -s 8192 -c 1000000 -v unlimited 2>/dev/null
        fi

相关问题