LoginSignup
0
0

More than 5 years have passed since last update.

ソースからbazelをコンパイルする時に"java.lang.OutOfMemoryError: Java heap space"というエラーが出たときの対処法

Last updated at Posted at 2018-01-18

背景

AWSの無料利用枠、t2.microでbazelをコンパイルしようとしていました。
apt-getが使えないので、ソースをダウンロードしてきてunzipし、./compileしたところ、出てきたエラーがこれ

java.lang.OutOfMemoryError: Java heap space

Jave heap spaceというエラーで、どうやらJavaを実行する際に確保したメモリが足りないせいで出るらしい。

t2.microのメモリが1GBしかないのが原因らしいが(4GBが推奨と聞きました)、メモリが少なくてもコンパイルできる方法がわかったので書いていく。

対処方法

compile.shを実行してbazelをコンパイルするわけですが、その中からまず
run "${JAVAC}" -...
という部分を探します。

bazelの場合は、compile.shからscripts/bootstrap/compile.shを読んでコンパイルしているので、scripts/bootstrap/compile.shからrun "${JAVAC}" -...を探して、-J-Xms256m -J-Xmx512mというオプションを追加します。より具体的には以下のように編集しました。

-  run "${JAVAC}" -classpath "${classpath}" -sourcepath "${sourcepath}" \
+  run "${JAVAC}" -J-Xms256m -J-Xmx512m -classpath "${classpath}" -sourcepath "${sourcepath}" \

これで僕の場合はコンパイルに成功しました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0