目录
系统资源不足Java heap space
相关报错提示:
Building Bazel from scratch......
java.lang.OutOfMemotyError:Java heap space
问题解析
首先,定位Bazel-5.2.0-dist解压后,文件目录下的脚本文件compile.sh
其次,根据第38行的提示,定位source(42行处),位于Bazel-5.2.0-dist解压后文件目录下scripts/bootstrap的compile.sh脚本文件
# Use BAZEL_JAVAC_OPTS to pass additional arguments to javac, e.g.,
# export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
# Useful if your system chooses too small of a max heap for javac.
# We intentionally rely on shell word splitting to allow multiple
# additional arguments to be passed to javac.
根据第138行的提示,我们需要在运行编译脚本时设置jvm参数,使用BAZEL_JAVAC_OPTS给javac传递参数信息,例如:
export BAZEL_JAVAC_OPTS="-J-Xmx1024m -J-Xms200m
根据开发版性能,这里设定的jvm最小为200m,最大为1024m
可根据实际需求对上下限进行动态调整
解决办法
方法一:直接执行以下命令重新进行构建
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" BAZEL_JAVAC_OPTS="-J-Xmx1024m -J-Xms200m" bash ./compile.sh
使用以上命令重新完成构建,Building Bazel from scratch......环节将不会报OutOfMemotyError
方法二:设置环境变量
设定的jvm最小为200m,最大为1024m
export BAZEL_JAVAC_OPTS="-J-Xmx1024m -J-Xms200m
查看和检查当前环境变量信息
export
export查看当前环境变量,出现此信息则已完成配置,重新执行构建命令即可。