Eclipseで環境セットメモ

## はじめに
Javaの環境セットですが、Java初心者が熟練者には当たり前のことでも色々迷って進めることができない状況がありましたのでメモを残しておきます。

## workspaceの位置
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176603/e1fc72c9-4336-5fcb-f52c-4987fdb743e7.png)

**workspace**フォルダがEclipseや他の関連フォルダと同じ階層にあることは、一般的なデフォルトの設定と考えて問題ありません。

Eclipseのデフォルト設定では、以下のような構造がよく見られます：

- Eclipseのインストールフォルダ内や同じ階層に**workspace**フォルダが作成される。
- この**workspace**フォルダには、プロジェクトのメタデータや設定情報、プロジェクトフォルダ自体が保存されます。

ただし、Eclipseをインストールした際に、ワークスペースの保存場所をカスタマイズすることもできます。そのため、インストール時に指定した保存場所が、Eclipseのルートディレクトリとは異なる場合もあります。

デフォルトでEclipseのインストール場所と同じ階層に`workspace`があるケースは多いですが、必ずしもその限りではありません。Eclipseを使用するときに、**「ワークスペースの選択」**画面で指定した場所にワークスペースが設定されるため、他の場所を指定した場合は、その場所にworkspaceフォルダが存在します。

もしワークスペースの場所を確認したい場合は、Eclipse起動時の「ワークスペース選択画面」から確認するか、Eclipseの設定画面で確認することができます。

### ワークスペースの場所確認方法:
1. メニューの「**ウィンドウ**」→「**設定（Preferences）**」を開きます。
2. 「**General**」→「**Startup and Shutdown**」→「**Workspaces**」で、現在のワークスペースの場所を確認または変更することができます。

この手順で現在使用しているワークスペースの正確な場所を確認することが可能です。


## worksapceに既存プロジェクトをセット
具体的には、すでに他の場所に存在しているEclipseプロジェクトをワークスペース内に読み込み、開発を続けるための操作です。

### 詳細なプロセス
- **「ルート・ディレクトリーの選択」**: ここで既存のEclipseプロジェクトが保存されているディレクトリを指定します。
- **プロジェクトの選択**: ルートディレクトリを指定すると、そのディレクトリ内にあるEclipseプロジェクトが表示されます。ここでインポートするプロジェクトを選択します。
- **完了ボタン**: 選択したプロジェクトが正しく表示されると、完了ボタンが活性化し、インポートが可能になります。

### 補足
- インポートすることで、既存プロジェクトがワークスペース内に追加され、Eclipseからそのプロジェクトを開いたり、編集したり、実行したりすることができるようになります。
- 既にワークスペースにあるプロジェクトは重複しないようにするため、同じプロジェクトを二重にインポートすることはできません。




## warファイルと既存プロジェクトコード

### WARファイルと既存プロジェクトの違い

#### 1. **WARファイル**
   - **WARファイル**（Web Application Archive）は、**コンパイル済みのファイル**をまとめたパッケージです。JavaのWebアプリケーションをデプロイする際に使用され、以下のような内容が含まれます：
     - **コンパイル済みのクラスファイル（`.class`）**: Javaソースコード（`.java`）がコンパイルされて生成されたファイルです。これにより、アプリケーションを直接実行できます。
     - **設定ファイル**: `WEB-INF/web.xml` やフレームワークの設定ファイル（例えば、SpringやStrutsの設定ファイル）。
     - **リソースファイル**: HTML、CSS、JavaScript、画像などの静的ファイルが含まれています。
     - **ライブラリ（`.jar`ファイル）**: アプリケーションで使用される外部の依存ライブラリが含まれます。

   - WARファイルは、**サーバ上にデプロイしてアプリケーションを実行**するためのものです。これはコンパイル済みのものであり、ソースコードは含まれていないことが一般的です。

#### 2. **既存プロジェクト**
   - **既存プロジェクト**は、**ソースコード（`.java`ファイル）**や開発に必要な設定が含まれているプロジェクトです。
     - **ソースコード（`.java`ファイル）**: 開発者が編集し、コンパイルする前のコードです。これがなければコードの修正や拡張ができません。
     - **プロジェクト設定ファイル**: Eclipseのプロジェクトであれば、`.project` や `.classpath` などのファイルが含まれています。これにより、Eclipseがプロジェクトの設定や依存関係を管理できます。
     - **ビルドファイル**: Mavenの`pom.xml`やGradleの`build.gradle`といったビルドツールの設定ファイルが含まれ、これにより依存関係の管理やビルドプロセスが制御されます。

### 結論
- **WARファイル**は、コンパイル済みの状態でサーバにデプロイするためのパッケージであり、ソースコードは含まれていません。
- **既存プロジェクト**は、ソースコードや開発に必要な設定が含まれており、開発者がコードを変更・再ビルドできるものです。

したがって、WARファイルと既存プロジェクトは用途が異なり、WARファイルを使って開発を続けることはできませんが、既存プロジェクトはコードの修正や再ビルドが可能です。

## jdkセット
https://willbrains.jp/

### EclipseのセットアップとJDKの関係
1. **Eclipse Pleiadesなどのパッケージ版をインストールした場合**：
   - あらかじめ指定されたバージョンのJDKがEclipseと一緒にインストールされていることが多いです。今回のように、Eclipseのディレクトリ内に `java` フォルダがあり、複数のJDKバージョンがセットされている場合、EclipseはこれらのJDKを自動的に認識し、設定で利用できるようになっています。

2. **該当のJDKバージョンがない場合**：
   - 指定されたバージョンのJDKが存在しない場合、または特定のプロジェクトで異なるJDKバージョン（例えばJava 18やJava 21）が必要な場合は、別途そのバージョンのJDKをインストールする必要があります。  
   - Oracleの公式サイトやOpenJDKのサイトから必要なJDKをダウンロードし、適切なディレクトリにインストールします。その後、Eclipseの設定で追加する必要があります（Eclipseの「**インストール済みのJRE**」設定で追加）。

### JDKを別途セットする手順
1. **JDKのインストール**：必要なJDK（例：Java 18、Java 21など）を公式サイトからダウンロードし、PCにインストールします。
   - 例: `C:\Program Files\Java\jdk-18` など。

2. **EclipseでJDKを設定**：
   - Eclipseを起動し、メニューから「**ウィンドウ**」→「**設定（Preferences）**」を開きます。
   - 左のメニューで「**Java**」→「**インストール済みのJRE**」を選択し、右側にある「**追加（Add）**」ボタンをクリックします。
   - 「Standard VM」を選択し、インストールしたJDKのパス（例：`C:\Program Files\Java\jdk-18`）を指定します。
   - 追加したJDKにチェックを入れ、デフォルトのJDKとして設定します。

### 結論
- **EclipseにあらかじめJDKがセットされている場合**、すぐに利用できますが、必要なバージョンがない場合は別途インストールして、手動で設定する必要があります。


## Java21に対応するものとは
「**Java 21に対応するものであれば何でもよい**」という場合、**Eclipse PleiadesなどのJava 21に対応したパッケージ版のEclipseをダウンロードしてインストールしてください**という意味である可能性が高いです。

### 理由
- **Eclipse Pleiadesなどのパッケージ版**には、あらかじめ複数のJavaバージョンに対応するように設定されたものが多く含まれています。Java 21に対応しているEclipseをインストールすれば、手動でEclipseを設定する手間が省けるため、このような記述がされているのだと思います。
- **Eclipseの公式パッケージ版**や日本語対応の**Eclipse Pleiades**は、特定のJavaバージョン（例えばJava 11、17、21）に対応するように最適化されているので、ダウンロードしてインストールするだけでJava 21に対応した環境が整います。

### 具体的な手順
1. **Java 21に対応したEclipseのインストール**:
   - Eclipseの公式サイトやPleiadesのサイトから、**Java 21に対応しているパッケージ**をダウンロードします。
   - Java 21対応を明記しているものを選べば、後の設定がスムーズに進みます。

2. **インストール後のツールの設定**:
   - Eclipseをインストールした後、「**インストール済みのJRE**」の設定から、Java 21を利用するようにします。
   - 必要に応じて、Java 21がインストールされていない場合、OracleやOpenJDKからダウンロードしてインストールします。

3. **既存プロジェクトのセット**:
   - Eclipseで既存のプロジェクトをセットする際には、「一般」→「既存プロジェクトをワークスペースへ」を選択してプロジェクトをインポートします。
   - インポート後、**JDK 21**に対応するように、プロジェクトのビルドパスで使用するJREをJava 21に設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176603/7a4c0a2a-97ef-965d-9add-eea0b57a4131.png)

(画像の見方)
**Java 21**に対応するEclipseパッケージは**2023年版**およびそれ以降のバージョンで確認されています。2024年のEclipseバージョンには、Java 21が「V」マークでチェックされています。これにより、Java 21が正式にサポートされていることがわかります。

したがって、**Eclipse Pleiadesの2023年版以降**をインストールすれば、Java 21を問題なく使用できることが確認できます。


**「○」マークが付いている場合**も、そのバージョンが該当し、使用可能であることを示しています。したがって、画像の表で「○」が付いているEclipseバージョンは、そのバージョンのJDKがサポートされていることを意味します。

**「V」マーク**は、該当バージョンが**デフォルトで含まれている**ことを示している可能性が高いです。たとえば、「Java 21」に「V」マークが付いているバージョンでは、インストール時にJava 21が含まれており、すぐに利用可能です。

まとめると、**「○」が付いているバージョン**でも、Java 21はサポートされており、適切な設定を行えば使用可能です。ただし、Java 21がデフォルトで含まれていないため、手動で設定する必要があるかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176603/f4cd8812-5922-fd90-01ea-8d3f1e2c1818.png)
### Ultimate
**Ultimateエディション**は、Eclipse Pleiadesの中で**最も多くの機能やプラグインが含まれているバージョン**です。Ultimate版は、Javaだけでなく、さまざまな開発言語やフレームワーク（C/C++、PHP、Pythonなど）をサポートするため、幅広い開発ニーズに対応しています。

#### 主な特徴:
- **豊富なプラグイン**: Ultimate版には、標準版よりも多くのプラグインやツールが含まれており、複雑なプロジェクトや多言語開発をサポートします。
- **高機能**: すべてのEclipseパッケージを統合した、フル機能のパッケージで、どの分野の開発者でも対応できるようになっています【54†source】【53†source】。

ただし、その分、他のエディションと比べてパッケージサイズが大きく、動作が重くなる可能性があるため、特に開発に必要な機能を絞って使いたい場合は、他のエディション（Java、C/C++専用など）の方が適していることもあります。

### Java
**Javaに特化した開発を行う場合**は、**Java版の欄を選択**する方が望ましいです。理由は以下の通りです：

### 1. **軽量で最適化された環境**
   - **Java版**は、Java開発に必要な最小限のプラグインや設定が含まれており、Ultimate版よりも軽量で動作が速くなります。必要のないプラグインを含まないため、シンプルで効率的な開発環境が構築できます。

### 2. **必要なプラグインの提供**
   - Java版には、Javaの開発に必要なツールやプラグイン（例：Java EE、RCPなど）が含まれているため、Java専用の環境として十分な機能を提供します。

### 3. **カスタマイズが可能**
   - 必要に応じて追加のプラグインをインストールすることで、開発環境をカスタマイズできます。Java版を選び、必要に応じて他の機能を追加する方が軽量かつ柔軟な構成になります。

ただし、もし**複数言語や複雑な開発環境**を必要とする場合（例えば、Javaだけでなく他の言語やフレームワークも扱う場合）は、**Ultimate版**の方が便利です。

そのため、Javaのみで開発する場合は、**Java版**を選ぶ方が効率的と言えます。