| この記事の要点 |
|
エラー内容
An internal error occurred during: "Building UI model".
com/google/common/base/Function
Eclipse のメニューから「ファイル」→「新規」→「Spring Starter Project」を選んだとき、ウィザード画面を作る途中(Building UI model)でこのダイアログが表示され、プロジェクト作成画面が開きません。
発生条件と原因
エラーの 2 行目にある com/google/common/base/Function は、Google が提供する Java ライブラリ Guava に含まれるクラスの名前です。クラス名がスラッシュ区切りで表示されるのは、Java の NoClassDefFoundError(実行時にクラスが見つからない)でよく見られる形式です。
Spring Starter Project のウィザードは STS プラグインの一部で、内部で Guava などのライブラリを使っています。Eclipse 本体と STS プラグインのバージョンが合っていないと、STS が期待するバージョンのライブラリが Eclipse 内に存在しない、または読み込めない状態になり、このエラーになります。
よくあるのは次のような状況です。
- 古い Eclipse(例: Neon)に、より新しい Eclipse 向けの STS を Marketplace から入れた
- Eclipse 本体だけ、または STS だけを更新して、片方が古いまま残っている
- Pleiades などの All in One パッケージに、別途 STS を追加して依存関係が崩れた
- 更新が途中で失敗し、プラグインの一部だけが新しくなっている
対処法 1: Eclipse を新しいバージョンに更新して揃える
以下は、Eclipse を新しいバージョンにしてバージョンを合わせる方法の一例です。元の手順では Neon から Oxygen へ更新していました(画面は Mac での操作例。Windows ではメニュー名が「ウィンドウ」→「設定」になるなど、名称が異なることがあります)。
- 「Eclipse」→「環境設定」→「Install/Update」→「Available Software Sites」を開く
- 「Add」を押し、更新先のリリースのリポジトリを登録する
- Name: Oxygen(任意の名前)
- Location: http://download.eclipse.org/releases/oxygen
- 「Help」→「Check for Updates」から、Eclipse 本体と各プラグインを更新する
- STS も同じ「Check for Updates」で最新化されるので、更新後に Eclipse を再起動する
- 再度「Spring Starter Project」を開き、エラーが出ないことを確認する
現在のリポジトリの URL は https://download.eclipse.org/releases/ の下に年月形式(例: 2025-12)で公開されています。旧リリース名(oxygen など)の URL は古い環境向けのもので、今から新しく構築する場合は使う必要はありません。
対処法 2: STS を Eclipse に合うバージョンで入れ直す
Eclipse 本体を更新できない事情がある場合は、STS 側をその Eclipse に対応したバージョンに合わせます。
- 「Help」→「About Eclipse」→「Installation Details」で、インストール済みの STS(Spring Tools)関連のプラグインをアンインストールする
- Eclipse を再起動する
- Eclipse Marketplace で Spring Tools を検索し、使っている Eclipse のバージョンに対応したものをインストールする
- 再起動後にウィザードを開いて確認する
Marketplace は通常、対応する Eclipse のバージョンを表示しています。対応外の組み合わせはインストール時に警告が出ることがあるので、無視して進めないようにしてください。
対処法 3: Spring Tools 一式を新しく入れる(推奨)
古い Eclipse 環境を修復するより、新しい環境を作る方が早いことが多いです。2026 年時点では次のどちらかが確実です。
- Spring Tools の Eclipse 版をダウンロード: Spring 公式サイト(spring.io/tools)から、Eclipse と Spring Tools が組み込まれた配布物を入手する。本体とプラグインのバージョンが最初から揃っている
- Spring Initializr でプロジェクトを作る: ブラウザで start.spring.io を開き、依存関係を選んで zip をダウンロードし、Eclipse の「インポート」→「既存 Maven プロジェクト」(Gradle の場合は Gradle プロジェクト)で取り込む。Spring Starter Project ウィザードも内部では同じ Initializr を使っている
なお、STS 3 系は既に開発が終了しています。現行の Spring Tools は Eclipse 版のほか、VS Code などの拡張機能としても提供されています。
よくある落とし穴
- ワークスペースの設定が壊れている: 更新後もエラーが続く場合、新しいワークスペースで起動して再現するか確認する。再現しなければワークスペース側のメタデータが原因
- Eclipse を -clean 付きで起動していない: プラグイン入れ替え後は、起動オプション
-cleanを一度付けて起動するとキャッシュが再構築される - JDK のバージョンが古い: 新しい Eclipse や Spring Tools は、Eclipse を動かす Java にも新しいバージョンを要求する。起動しない場合は eclipse.ini の
-vm指定を確認する - プロキシ環境: 社内ネットワークでは更新サイトや Initializr に接続できず、別のエラーになることがある。「ネットワーク接続」の設定を確認する
確認方法
- 「Help」→「About Eclipse」で Eclipse のバージョンを確認する
- 「Installation Details」で Spring Tools 関連プラグインのバージョンを確認し、対応する Eclipse のバージョンと一致しているか見る
- エラーの詳細は、ワークスペースの
.metadata/.logに記録されている。NoClassDefFoundErrorの前後にどのプラグインが出ているかで原因を絞り込める - 「Spring Starter Project」でウィザードが開き、プロジェクトが作成できれば解決
関連
- Spring Bootプロジェクトの作成方法
- Eclipse でプロジェクトを作成する手順|動的 Web プロジェクト / Maven / Spring Boot
- Eclipse でよくあるエラー一覧と対処法 — JVM / ワークスペース / ビルドパス
- インストール(eclipseプラグイン)
- Eclipse IDE の基本(ダウンロード / JDK 設定 / プラグイン / Pleiades 日本語化 / ショートカット)
子ページはありません
- java.lang.IllegalStateException: CGLIB is required to process @Configuration classes
- Error creating bean with name 'org.springframework.aop.config.internalAutoProxyCreator': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator
- No mapping found for HTTP request with URI ... in DispatcherServlet with name ...
- An internal error occurred during: "Building UI model". com/google/common/base/Function
- No identifier specified for entity : ...
- org.hibernate.hql.internal.ast.QuerySyntaxException: table_name is not mapped
- No compiler is provided in this environment
- java.sql.SQLException: The server time zone value ' ... ' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone
- Caused by: java.lang.RuntimeException: Executing an update/delete query
- Not supported for DML operations
- Field ... required a bean of type ... that could not be found.
- Annotation-specified bean name 'xxxController' for bean class [com.xxx.controller.xxxController] conflicts with existing, non-compatible bean definition of same name and class [com.xxx.xxxController]
- Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.
- Exception in thread "main" java.lang.UnsupportedClassVersionError
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38