tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

m2eclipseでtools.jarが無いとかそんなことを言われた時

Missing indirectly referenced artifact com.sun:tools:jar:1.5.0:system
The container 'Maven Dependencies' references non existing library 'C:\Program Files\Java\lib\tools.jar'
The project cannot be built until build path errors are resolved

m2eclpiseでこんなメッセージが表示されてビルドできない時の対応。

方法1

tools.jarの依存関係をpom.xmlに書いてやる。

  <dependencies>
    <dependency>
      <groupId>sun.jdk</groupId>
      <artifactId>tools</artifactId>
      <version>1.5.0</version>
      <scope>system</scope>
      <systemPath>${java.home}/../lib/tools.jar</systemPath>
    </dependency>
  ...
  </dependencies>

方法2

Installed JREsの中にtools.jarを指定してやる


毎回pom.xmlを書くのは面倒なので、Installed JREsに増やしておくのが楽。

他にも各プロジェクトのJava Build Pathに書くこともできるけど、EclipseにはJDK_HOMEの変数が無いので、ユーザ環境の違いを吸収できないのでこの方法だとちょっと残念な感じになる。