1
0

EclipseでSpring スターター・プロジェクトが出たり出なかったりする

Last updated at Posted at 2024-04-21

1.はじめに

EclipseでSpring Bootアプリケーションを作成しようとした際に新規プロジェクトの
ウィザードがEclipseのバージョンやJDKの違い?によって出たり出なかったりしたので
調査結果を備忘録として結果を残していきます。

先に結論(追記)

どうして新規プロジェクトのウィザードが出たり出なかったりするの?
→各Eclipseが要求しているJDKの最低バージョンをこちらが守らなかったから

完全に自業自得でした。

2.実行環境、使用したソフト・JDKのバージョン

実行環境

Windows11
java version "1.8.0_291"

使用ソフト・JDK

Eclipse-2020-12-20201222
Eclipse-2021-12-20220106
Eclipse-2022-12-20230212
いずれもPleiades All in One のStandard Editionです

JDKは11及び17を使用して確認した
(Eclipse2022のFull Editionに付属していたものを使用しており環境変数には設定していない)

eclipse.ini
--launcher.appendVmargs
-vm
C:/Program Files (x86)/JDK/11/bin
-vmargs
-Dosgi.requiredJavaVersion=11
-Dsun.java.command=Eclipse
eclipse.ini
--launcher.appendVmargs
-vm
C:/Program Files (x86)/JDK/17/bin
-vmargs
-Dosgi.requiredJavaVersion=17
-Dsun.java.command=Eclipse

3. Eclipse-2020の場合

JDK11指定のとき

ファイル→新規→その他

image.png

しっかりSpring Bootの項目が存在しており、スターター・プロジェクトを指定すると

image.png

このようにウィザードは出せるが、Javaバージョンは17以上しか選択できないため
JDK11を指定している現状ではエラーが発生し、生成自体が失敗する

image.png

JDK17指定のとき

先程とはことなりウィザードの表示→プロジェクトの生成までは可能だが、
なぜJREシステム・ライブラリーがアンバインドされる
そのためJRE(JDK)の定義をウィンドウ→設定から行う

image.png

そうするとビルドが実行されて以下のエラーが発生する

image.png

エラーの発生原因はそもそもEclipse-2020がJDK17に対応していないことだと予想される
(正確な対応表は確認できていないがEclipse-2021からJava17に対応したという記述が確認されたため)

4. Eclipse-2021の場合

JDK11指定のとき

2020と違ってパッケージエクスプローラー内にも新規Springスターター・プロジェクトの作成項目が存在する

image.png

ファイル→新規→その他 にもしっかりあることが確認できる

image.png

また使用頻度高の部分に初めからいくつか表示されておりチェックも入っている

image.png

2020のときと同様にJavaバージョンは17以上しか選択できず11で起動している状態
なので同様のエラーが発生し生成に失敗する

image.png

JDK17指定のとき

ウィンドウ→設定からJDK17の設定を行うとビルドパスのエラーが解消し
特にエラーもなく実行まで可能

image.png

5. Eclipse-2022の場合

(このバージョンからiniファイルの初期JavaVersion指定が17になっている)

JDK11指定のとき

2021と違ってパッケージエクスプローラー内に新規Springスターター・プロジェクトの作成項目が存在しない

image.png

ファイル→新規→その他 からも確認できず、検索しても出てこないためウィザードが出せず生成できない

image.png

image.png

ウィンドウ→設定 内のSpring項目は2つだけ存在している

image.png

JDK17指定のとき

先程の11指定のときとは異なりパッケージエクスプローラー内に
新規Springスターター・プロジェクトの作成項目が存在するようになっている

image.png

また、ファイル→新規→その他 からも確認できるようになっている

image.png

image.png

生成後は問題なく実行まで行える

image.png

ウィンドウ→設定 内の項目もJDK11のときとは異なり増えている

image.png

6. 番外編 Eclipse2023の場合

JDK11指定のとき

そもそもEclipseが起動しなくなり以下のようなログが出力された

!SESSION 2024-04-21 12:27:34.374 -----------------------------------------------
eclipse.buildId=4.30.0.20231201-1200
java.version=11.0.18
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ja_JP
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

!ENTRY org.eclipse.equinox.simpleconfigurator 4 0 2024-04-21 12:27:34.947
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.equinox.simpleconfigurator [2]
  Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=17))"

	at org.eclipse.osgi.container.Module.start(Module.java:463)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1852)
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1845)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1788)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1750)
	at org.eclipse.osgi.container.SystemModule.startWorker(SystemModule.java:269)
	at org.eclipse.osgi.container.Module.doStart(Module.java:605)
	at org.eclipse.osgi.container.Module.start(Module.java:468)
	at org.eclipse.osgi.container.SystemModule.start(SystemModule.java:193)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:445)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:464)
	at org.eclipse.osgi.launch.Equinox.start(Equinox.java:139)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:338)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:251)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1459)

JDK17指定のとき

問題なく起動しSpringスターター・プロジェクトの作成も確認できる

image.png

5.わかったこと

・そもそもSpringBootの現行バージョン(3.xx)に対応しているJavaのバージョンが17以上となっているため対応バージョンが11までとなっている2020以前のバージョンでは新規作成できないと思われる。

・2021以降のバージョンかつiniファイルで設定するJDKを17以降にするとウィザードが出現し新規SpringBootアプリケーションを新規作成することができる

6.Wikiから確認できたこと(追記)

https://wiki.eclipse.org/Eclipse/Installation
image.png

そもそも2022-09以降ではJava17が最低バージョンとして求められているらしい
今回確認に用いた2022年版は2023-02となっているのでJDK11指定で起動してウィザードが表示されないのは完全にこちらが悪い()

1
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
1
0