目的
EclipseでこれまでEAR開発やLibertyサーバー管理をしてきましたが、VSCodeを使いたくなり移行をこころみます。
VSCodeの導入
からダウンロードして導入します。
2026/5/26 現在
code-1.121.0-1779186559.el8.x86_64.rpm
でした。
$ sudo rpm -Uvh code-1.121.0-1779186559.el8.x86_64.rpm
[sudo] password for keniooi:
warning: code-1.121.0-1779186559.el8.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID be1229cf: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:code-1.121.0-1779186559.el8 ################################# [ 50%]
Cleaning up / removing...
2:code-1.100.2-1747260629.el8 ################################# [100%]
Javaの導入
Eclipse使っていた前提なので、Javaは導入済みですがダウンロードリンクを紹介します。Libertyで使うということで IBM Semeru Runtime のサポートしているバージョンにします。
Libertyの対応Javaバージョンはこちらで確認します。
Libertyバージョン(.3, .6, .9, .12 の末尾)の最新ででサポートしているJavaの最新LTSバージョンの組み合わせがおすすめです。2026/5/26 だと Liberty 26.0.0.3 と Java25 です。OpenLibertyの場合は末尾は気にしません。
この機会に導入しました。
$ sudo rpm -Uvh ibm-semeru-open-25-jdk-25.0.3.0-1.x86_64.rpm
[sudo] password for keniooi:
Sorry, try again.
[sudo] password for keniooi:
warning: ibm-semeru-open-25-jdk-25.0.3.0-1.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8a8d4582: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:ibm-semeru-open-25-jdk-25.0.3.0-1################################# [100%]
デフォルト Java の変更
デフォルトで動作するJavaを変更します。
$ sudo alternatives --config java
[sudo] password for keniooi:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.18.0.10-3.el9.x86_64/bin/java)
2 /usr/lib/jvm/ibm-semeru-open-25-jdk/bin/java
Enter to keep the current selection[+], or type selection number: 2
[keniooi@centos9 bin]$ java -version
openjdk version "25.0.3" 2026-04-21 LTS
IBM Semeru Runtime Open Edition 25.0.3.0 (build 25.0.3+9-LTS)
Eclipse OpenJ9 VM 25.0.3.0 (build 25.0.3+9-openj9-0.59.0, JRE 25 Linux amd64-64-Bit Compressed References 20260421_243 (JIT enabled, AOT enabled)
OpenJ9 - c53b6b93f4
OMR - 6426f03fa
JCL - e4aaece3226 based on jdk-25.0.3+9)
Libertyの導入
Open Liberty をダウンロードして、サーバーを作成します。26.0.0.5 の All GA Features をダウンロードしました。
$ unzip ../Downloads/openliberty-26.0.0.5.zip
Archive: ../Downloads/openliberty-26.0.0.5.zip
creating: wlp/
inflating: wlp/LICENSE
inflating: wlp/NOTICES
...
Libertyサーバーの作成
VSCodeからの実行で作成することもできますが、手動で作成する方法の紹介です。サーバー名は pom.xml の指定と同じにします。
unzip で導入した続きで以下を実行しました。
$ cd wlp/bin
$ ./server create jakartaee-starter-svr
Server jakartaee-starter-svr created.
server.xml を変更します。
<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">
<!-- Enable features -->
<featureManager>
<feature>jakartaee-10.0</feature>
</featureManager>
<!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
<httpEndpoint id="defaultHttpEndpoint"
httpPort="9080"
httpsPort="9443" />
<!-- Automatically expand WAR files and EAR files -->
<applicationManager autoExpand="true"/>
<!-- Default SSL configuration enables trust for default certificates from the Java runtime -->
<ssl id="defaultSSLConfig" trustDefaultCerts="true" />
<keyStore id="defaultKeyStore" password="passw0rd"/>
<quickStartSecurity userName="wsadmin" userPassword="passw0rd" />
</server>
VSCodeの起動
コンソールなら以下のコマンドです。GUIの場合はアイコンをクリックして起動します。
code
起動できたらディレクトリをオープンします。(EclipseのWorkspaceのつもり)
ここでは jakartaee-starter というディレクトリを選択しました。あとで作成するアプリにあわせた名前です。
選択すると以下のポップアップがあり、Yes を選択します。
Extension Pack for Java / Liberty Tools の導入
画面左側の 田 みたいなアイコンをクリックして、Extension Pack for Java をみつけて(すぐありました)Installボタンをクリックします。
Welcomeページが開きますが、ここではスルーします。同様に Liberty Tools を探して Installボタンをクリックします。
プロジェクトの作成
Mavenプロジェクトを作成します。mavenが導入されていない場合は以下を参考に導入します。
$ which mvn
/usr/bin/mvn
$ rpm -qf /usr/bin/mvn
maven-3.6.3-15.el9.noarch
Mavenプロジェクトのリストを作成します。
$ mvn archetype:generate
INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.4.1:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.4.1:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.4.1:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> ai.raics:spark-scala-archetype_2.12 (Archetype for Spark project (Scala 2.12))
2: remote -> ai.raics:spark-scala-archetype_2.13 (Archetype for Spark project (Scala 2.13))
3: remote -> ai.wanaku.sdk:capabilities-archetypes-java-tool (-)
4: remote -> am.ik.archetype:elm-spring-boot-blank-archetype (Blank multi project for Spring Boot + Elm)
5: remote -> am.ik.archetype:graalvm-blank-archetype (Blank project for GraalVM)
6: remote -> am.ik.archetype:graalvm-springmvc-blank-archetype (Blank project for GraalVM + Spring MVC)
7: remote -> am.ik.archetype:graalvm-springwebflux-blank-archetype (Blank project for GraalVM + Spring MVC)
...(略)...
3671: remote -> za.co.absa.hyperdrive:component-archetype (-)
3672: remote -> za.co.absa.hyperdrive:component-archetype_2.11 (-)
3673: remote -> za.co.absa.hyperdrive:component-archetype_2.12 (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 2349:
- jakarta を入力してフィルター
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : jakarta
Choose archetype:
1: remote -> com.airhacks:jakartaee-essentials-archetype (Jakarta EE with MicroProfile project quickstart template. Clean, lean and minimalistic.)
2: remote -> com.apuntesdejava:jakarta-ee-10-essentials-web-profile (Essential Archetype for Jakarta EE Web Profile Project)
3: remote -> com.apuntesdejava:jakarta-ee-essentials (Essential Archetype for Jakarta EE Project)
...
38: remote -> org.eclipse.starter:jakarta-starter (This is the official Eclipse Foundation Starter for Jakarta EE.
It generates code to help get started with Jakarta EE projects.
It is possible to do so using Maven archetypes.)
39: remote -> org.eclipse.starter:jakartaee10-minimal (Jakarta EE 10 Minimal Maven Archetype)
40: remote -> org.eclipse.starter:jakartaee8-minimal (Jakarta EE 8 Minimal Maven Archetype)
41: remote -> org.eclipse.starter:jakartaee9.1-minimal (Jakarta EE 9.1 Minimal Maven Archetype)
42: remote -> org.wildfly.archetype:wildfly-jakartaee-ear-archetype (An archetype that generates a starter Jakarta EE project for JBoss WildFly. The project is an EAR, with an EJB-JAR and WAR. It is prepared for Arquillian driven unit tests.)
43: remote -> org.wildfly.archetype:wildfly-jakartaee-webapp-archetype (An archetype that generates a starter Jakarta EE project for JBoss WildFly. The project is a WAR archive. It is prepared for Arquillian driven unit tests.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): :
- 38を選択
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 38
Choose org.eclipse.starter:jakarta-starter version:
1: 1.0.0
2: 2.0.0
3: 2.0.1
4: 2.1.0
5: 2.2.0
6: 2.2.1
7: 2.2.3
8: 2.3.0
9: 2.4.0
10: 2.5.0
11: 2.6.0
12: 2.7.0
- 12を選択
Choose a number: 12: 12
Downloading from central: https://repo.maven.apache.org/maven2/org/eclipse/starter/jakarta-starter/2.7.0/jakarta-starter-2.7.0.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/eclipse/starter/jakarta-starter/2.7.0/jakarta-starter-2.7.0.jar (169 kB at 288 kB/s)
[INFO] Using property: groupId = org.eclipse
[INFO] Using property: artifactId = jakartaee-hello-world
[INFO] Using property: version = 0.1-SNAPSHOT
[INFO] Using property: package = org.eclipse
[INFO] Using property: jakartaVersion = 11
[INFO] Using property: profile = core
[INFO] Using property: javaVersion = 21
[INFO] Using property: docker = no
[INFO] Using property: runtime = none
Confirm properties configuration:
groupId: org.eclipse
artifactId: jakartaee-hello-world
version: 0.1-SNAPSHOT
package: org.eclipse
jakartaVersion: 11
profile: core
javaVersion: 21
docker: no
runtime: none
Y:
- N を選択して以下をここでは変更 (今回は生成ツールの制約 javaVersion に 21 を選択しています)
- groupId
- package
- jakartaVersion
- javaVersion
- runtime
Y: N
Define value for property 'groupId' org.eclipse: pdprof.jakarta.starter
Define value for property 'artifactId' jakartaee-hello-world:
Define value for property 'version' 0.1-SNAPSHOT:
Define value for property 'package' org.eclipse: pdprof.jakarta.starter
Define value for property 'jakartaVersion' (should match expression '^(8|9|9.1|10|11)$') 11: 10
Define value for property 'profile' (should match expression '^(core|web|full)$') core:
Define value for property 'javaVersion' (should match expression '^(8|11|17|21)$') 21: 21
Define value for property 'docker' (should match expression '^(no|yes)$') no: no
Define value for property 'runtime' (should match expression '^(none|glassfish|open-liberty|payara|tomee|wildfly)$') none: open-liberty
Confirm properties configuration:
groupId: pdprof.jakarta.starter
artifactId: jakartaee-hello-world
version: 0.1-SNAPSHOT
package: pdprof.jakarta.starter
jakartaVersion: 10
profile: core
javaVersion: 21
docker: no
runtime: open-liberty
Y:
- Y を入力
Y: Y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: jakarta-starter:2.7.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: pdprof.jakarta.starter
[INFO] Parameter: artifactId, Value: jakartaee-hello-world
[INFO] Parameter: version, Value: 0.1-SNAPSHOT
[INFO] Parameter: package, Value: pdprof.jakarta.starter
[INFO] Parameter: packageInPathFormat, Value: pdprof/jakarta/starter
[INFO] Parameter: package, Value: pdprof.jakarta.starter
[INFO] Parameter: javaVersion, Value: 21
[INFO] Parameter: groupId, Value: pdprof.jakarta.starter
[INFO] Parameter: profile, Value: core
[INFO] Parameter: runtime, Value: open-liberty
[INFO] Parameter: artifactId, Value: jakartaee-hello-world
[INFO] Parameter: version, Value: 0.1-SNAPSHOT
[INFO] Parameter: jakartaVersion, Value: 10
[INFO] Parameter: docker, Value: no
[WARNING] Don't override file /home/keniooi/git/jakartaee-starter/jakartaee-hello-world/src/main/java/pdprof/jakarta/starter
[WARNING] Don't override file /home/keniooi/git/jakartaee-starter/jakartaee-hello-world/src/main/liberty/config
[WARNING] Don't override file /home/keniooi/git/jakartaee-starter/jakartaee-hello-world/src/main/webapp
[WARNING] CP Don't override file /home/keniooi/git/jakartaee-starter/jakartaee-hello-world/.mvn/wrapper
[INFO] Executing META-INF/archetype-post-generate.groovy post-generation script
Generating code for Open Liberty
Binding EE package: jakarta
Core profile doesn't support Jakarta Servlet
Docker support was not requested
Running chmod on mvnw
The README.md file in the jakartaee-hello-world directory explains how to run the generated application
[INFO] Project created from Archetype in dir: /home/keniooi/git/jakartaee-starter/jakartaee-hello-world
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14:33 min
[INFO] Finished at: 2026-05-28T00:36:42+09:00
[INFO] ------------------------------------------------------------------------
プロジェクトにLiberty pluginを追加, 変更
runtime に open-libertyを指定すると設定が追加されていますが、設定し忘れた場合などは自分で pom.xmlを編集します。導入済みのLibertyを使いたい時も変更が必要です。
を参考に pom.xml の<build><plugins> </plugins></build> の入れ子として
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.11.4</version>
<extensions>true</extensions>
<configuration>
<installDirectory>/home/keniooi/wlp</installDirectory>
<serverName>jakartaee-starter-svr</serverName>
<looseApplication>true</looseApplication>
<deployPackages>all</deployPackages>
</configuration>
</plugin>
を追加(変更)します。<installDirectory> <serverName> を環境に合わせて変更します。
maven のメニューでコンパイル
EXPLORERのメニューで MAVENを開いて Projectの compile を Run します。
MAVENのメニューがない場合は pom.xml の編集に失敗している可能性があるので、内容を確認します。
Libertyサーバーの開始
EXPLORERのメニューで LIBERTY DASHBOARD を開いて、サーバーを Start します。
Libertyのインストールディレクトリが間違っていると以下のエラーになります。
[ERROR] Failed to execute goal io.openliberty.tools:liberty-maven-plugin:3.11.4:dev (default-cli) on project jakartaee-hello-world: CWWKM2176E: When the installDirectory attribute is set, it must point to a directory that contains a Liberty installation. -> [Help 1]
アプリケーションにアクセス
アプリケーションが正常動作しているか、ブラウザでアクセスします。
http://localhost:9080/jakartaee-hello-world/rest/hello
以下が出力されれば成功です。
上のリンクでエラーになる場合は、server.xml の contextRoot を確認して(サーバー自動作成の場合などはそうかもしれない)
<webApplication location="jakartaee-hello-world.war" contextRoot="/"/>
の場合は
http://localhost:9080/rest/hello
にアクセスします。
おまけ:GUIの調整
Activity Bar に移動
Explorerで表示されているメニューは左側のアイコンのところにドラッグするとアイコン表示で選択できます。
LIBERTY DASHBOARDを移動すると開始、停止が楽になります。
Liberty Serverのフォルダを追加
既存のserverを使った場合は Add Folder to Workspace... で追加するとファイルが開きやすくなります。
おまけ:プロジェクトの作成方法いろいろ
Open Liberty の Web サイトで
のサイトにアクセスして、以下のメニューでプロジェクトを作成します。
ダウンロードしたプロジェクトを unzip して VSCode で開くと使えます。
VSCodeのメニューから
Mavenプロジェクトを作成します。mavenが導入されていない場合は以下を参考に導入します。
$ which mvn
/usr/bin/mvn
$ rpm -qf /usr/bin/mvn
maven-3.6.3-15.el9.noarch
Mavenプロジェクトのリストを作成します。
$ mvn archetype:generate
INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.4.1:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.4.1:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.4.1:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> ai.raics:spark-scala-archetype_2.12 (Archetype for Spark project (Scala 2.12))
2: remote -> ai.raics:spark-scala-archetype_2.13 (Archetype for Spark project (Scala 2.13))
3: remote -> ai.wanaku.sdk:capabilities-archetypes-java-tool (-)
4: remote -> am.ik.archetype:elm-spring-boot-blank-archetype (Blank multi project for Spring Boot + Elm)
5: remote -> am.ik.archetype:graalvm-blank-archetype (Blank project for GraalVM)
6: remote -> am.ik.archetype:graalvm-springmvc-blank-archetype (Blank project for GraalVM + Spring MVC)
7: remote -> am.ik.archetype:graalvm-springwebflux-blank-archetype (Blank project for GraalVM + Spring MVC)
...(略)...
3671: remote -> za.co.absa.hyperdrive:component-archetype (-)
3672: remote -> za.co.absa.hyperdrive:component-archetype_2.11 (-)
3673: remote -> za.co.absa.hyperdrive:component-archetype_2.12 (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 2349: exit
ここで Ctrl+C で終了します。この実行でリストが更新されるようでした。
- 画面左側の アイコン 一番上の EXPLORER で右クリック
- Mavenを選択
- New Project... を選択
- jakarta-starter を入力して選択
- version を選択
- group Id (package名と同じにしておいた)を入力
- artifact Id (プロジェクト名)を入力
- プロジェクトの保管先を選択
コマンドが実行されて、入力画面になる。
- 今の設定でよいか >> N
- version >> そのままでいいのでEnterのみ
- package name >> pdprof.jakarta.starter
- この設定でよいか >> Y
Confirm properties configuration:
groupId: pdprof.jakarta.starter
artifactId: demo
version: 0.1-SNAPSHOT
package: org.eclipse
Y: N
[INFO] Using property: groupId = pdprof.jakarta.starter
[INFO] Using property: artifactId = demo
Define value for property 'version' 0.1-SNAPSHOT: :
Define value for property 'package' org.eclipse: : pdprof.jakarta.starter
Confirm properties configuration:
groupId: pdprof.jakarta.starter
artifactId: demo
version: 0.1-SNAPSHOT
package: pdprof.jakarta.starter
Y: : Y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: jakarta-starter:1.0.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: pdprof.jakarta.starter
[INFO] Parameter: artifactId, Value: demo
[INFO] Parameter: version, Value: 0.1-SNAPSHOT
[INFO] Parameter: package, Value: pdprof.jakarta.starter
[INFO] Parameter: packageInPathFormat, Value: pdprof/jakarta/starter
[INFO] Parameter: package, Value: pdprof.jakarta.starter
[INFO] Parameter: groupId, Value: pdprof.jakarta.starter
[INFO] Parameter: artifactId, Value: demo
[INFO] Parameter: version, Value: 0.1-SNAPSHOT
[WARNING] Don't override file /home/keniooi/git/jakartaee-starter/demo/src/main/java/pdprof/jakarta/starter
[WARNING] CP Don't override file /home/keniooi/git/jakartaee-starter/demo/src/main/resources
[WARNING] CP Don't override file /home/keniooi/git/jakartaee-starter/demo/src/main/webapp
[WARNING] Don't override file /home/keniooi/git/jakartaee-starter/demo/src/test/java/pdprof/jakarta/starter
[WARNING] CP Don't override file /home/keniooi/git/jakartaee-starter/demo/src/test/resources
[INFO] Project created from Archetype in dir: /home/keniooi/git/jakartaee-starter/demo
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:52 min
[INFO] Finished at: 2026-05-27T23:55:54+09:00
[INFO] ------------------------------------------------------------------------
* Terminal will be reused by tasks, press any key to close it.
まとめ
EclipseからVSCodeへの移行はハードルが高い印象がありましたが、Extension Pack for JavaやLiberty Toolsを活用することで、おもってたより快適な開発環境を構築できました。VSCodeで動かすことで、他のツールも使えるので、活用していこうと思います!















