

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Q Developer を使用した Java アプリケーションの変換
<a name="transform-java"></a>

**注記**  
AWS Transform カスタムが Java アップグレードで利用可能になりました。バージョンアップグレード、SDK 移行などを処理し、すべての実行で改善されるエージェント AI。[開始方法](https://docs.aws.amazon.com/transform/latest/userguide/custom-get-started.html)

Amazon Q は、Java アプリケーションの次の種類の変換をサポートしています。
+ Java 言語と依存関係のバージョンのアップグレード
+ Oracle から PostgreSQL へのデータベース移行のための埋め込み SQL 変換

開始するには、実行する変換の種類に該当するトピックを参照してください。

**Topics**
+ [

## クォータ
](#quotas-java-transformation-ide)
+ [

# Amazon Q Developer を使用した Java バージョンのアップグレード
](code-transformation.md)
+ [

# Amazon Q Developer を使用した Java アプリケーションの埋め込み SQL の変換
](transform-sql.md)
+ [

# Amazon Q Developer を使用したコマンドラインでのコード変換
](transform-CLI.md)
+ [

# 変換ジョブ履歴の表示
](transformation-job-history.md)
+ [

# Java 変換に関する問題のトラブルシューティング
](troubleshooting-code-transformation.md)

## クォータ
<a name="quotas-java-transformation-ide"></a>

IDE およびコマンドラインでの Amazon Q による Java アプリケーション変換では、次のクォータが維持されます。
+ **ジョブあたりのコード行** – Amazon Q が特定の変換ジョブで変換できるコード行の最大数。
+ **1 か月あたりのコード行** – Amazon Q が 1 か月間に変換できるコード行の最大数。
+ **同時ジョブ** – 同時に実行できる変換ジョブの最大数。このクォータは、[Visual Studio での .NET 変換](transform-dotnet-IDE.md)を含む、IDE でのすべての変換に適用されます。
+ **1 か月あたりのジョブ** – 1 か月間に実行できる変換ジョブの最大数。


| [リソース]  | クォータ | 
| --- | --- | 
| ジョブあたりのコード行 | 無料利用枠: 1,000 行のコード | 
| 1 か月あたりのコード行 | 無料利用枠: 2,000 行のコード | 
| 同時ジョブ |  ユーザーあたり 1 ジョブ  AWS アカウントあたり 25 ジョブ  | 
| 1 か月あたりのジョブ |  Pro ティア: 1,000 ジョブ 無料利用枠: 100 ジョブ  | 

# Amazon Q Developer を使用した Java バージョンのアップグレード
<a name="code-transformation"></a>

Amazon Q Developer は、統合開発環境 (IDE) で Java アプリケーションを新しい言語バージョンにアップグレードすることができます。Amazon Q がコードのアップグレードで実行できる変更には、廃止されたコードコンポーネントと API の更新、コード内のライブラリ、フレームワーク、その他の依存関係のアップグレードが含まれます。

コードを変換する前に、Amazon Q はまずソース言語バージョンでコードを構築し、コードの変換に必要な情報が揃っていることを確認します。Amazon Q がコードを正常に変換したら、IDE で変更を検証して受け入れます。Amazon Q Developer は、アップグレードされたコードにターゲット JDK との互換性を持たせるための必要最小限の変更を行うため、プロジェクトのライブラリと依存関係をアップグレードするには追加の変換が必要です。Amazon Q でのコード変換の仕組みの詳細については、「[Amazon Q Developer が Java 言語アップグレードのコードを変換する仕組み](how-CT-works.md)」を参照してください。

**Topics**
+ [

## サポートされている Java アップグレードと IDE
](#supported-languages-IDEs)
+ [

## ステップ 1: 前提条件
](#java-upgrade-prerequisites)
+ [

## ステップ 2: プロジェクトを設定する
](#configure-project)
+ [

## ステップ 3: 依存関係のアップグレードファイルを作成する (オプション)
](#create-dependency-upgrade-file)
+ [

## ステップ 4: コードを変換する
](#transform-code-java)
+ [

# Amazon Q Developer が Java 言語アップグレードのコードを変換する仕組み
](how-CT-works.md)

## サポートされている Java アップグレードと IDE
<a name="supported-languages-IDEs"></a>

Amazon Q の変換は、現在、次の Java ソースコードバージョンとターゲットバージョンをサポートしています。同じ Java バージョンへのコード変換には、ソースコードバージョンのライブラリやその他の依存関係のアップグレードが含まれます。


**サポートされている Java アップグレード**  

| ソースコードバージョン | サポートされているターゲットバージョン | 
| --- | --- | 
| Java 8  | Java 17 および Java 21 | 
| Java 11 | Java 17 および Java 21 | 
| Java 17 | Java 17 および Java 21  | 
| Java 21 |  Java 21   | 

Amazon Q は、次の IDE で Java アップグレードをサポートしています。
+ JetBrains IDE のモジュール
+ Visual Studio Code のプロジェクトとワークスペース

## ステップ 1: 前提条件
<a name="java-upgrade-prerequisites"></a>

続行する前に、「[IDE で Amazon Q のセットアップ](q-in-IDE-setup.md)」の手順が完了していることを確認してください。

コード変換ジョブを開始する前に、以下の前提条件を満たしていることを確認します。
+ プロジェクトは[サポートされている Java バージョン](#supported-languages-IDEs)で記述され、Maven 上に構築されている。
+ プロジェクトは Maven を使用して IDE で正常にビルドできる。Maven 3.8 以降がサポートされています。
+ プロジェクトソース JDK がローカルで利用可能で、ソースコードのバージョンである。例えば、Java 8 コードを変換する場合、ローカルの JDK インストールは JDK 8 である必要があります。
+ プロジェクトのビルドが 55 分以内に完了する。
+ プロジェクトが正しく設定され、正しい JDK バージョンが指定されている。詳細については、「[ステップ 2: プロジェクトを設定する](#configure-project)」を参照してください。
+ プロジェクトが仮想プライベートクラウド (VPC) やオンプレミスネットワークなど、プライベートネットワーク上のリソースへのアクセスを必要としない。例えば、プロジェクトにネットワーク内のデータベースに接続するユニットテストが含まれている場合、変換は失敗します。
+ プロジェクトが Java プロジェクトで Java 以外の言語をパッケージ化するプラグインを使用していない。例えば、Java ソースコードに加えて、フロントエンド JavaScript コードを実行するために [frontend-maven-plugin](https://github.com/eirslett/frontend-maven-plugin) を使用している場合、変換は失敗します。
+ ローカルネットワークで、Amazon Q がコードの変換に使用する Amazon S3 バケットへのアップロードが許可されている。詳細については、「[Allow access to Amazon S3 buckets in data perimeters](firewall.md#data-perimeters)」を参照してください。
+ アプリケーションは UTF-8 文字のみを使用している。アプリケーションで非 UTF-8 文字を使用している場合でも、Amazon Q はコードの変換を試みます。

## ステップ 2: プロジェクトを設定する
<a name="configure-project"></a>

プロジェクトを設定するには、使用している IDE に応じて次の情報を使用します。

### JetBrains でプロジェクトを設定する
<a name="configure-jetbrains"></a>

JetBrains でプロジェクトを設定するには、次のプロジェクト設定とモジュール設定を指定する必要があります。

モジュールがプロジェクトと同じ JDK と言語レベルを使用している場合は、モジュール設定を更新する必要はありません。
+ Project SDK – プロジェクトのコンパイルに使用される JDK。
+ Project language level – プロジェクトで使用される Java バージョン。
+ Module SDK – モジュールをコンパイルするために使用される JDK。
+ Module language level – モジュールで使用される Java バージョン。
+ Maven Runner JRE – モジュールのビルドに使用する JDK。

**プロジェクト設定とモジュールの設定を更新する**

プロジェクトまたはモジュールの SDK と言語レベルの設定を更新する手順は次のとおりです。

1. JetBrains IDE で、**[File]** を選択し、次に **[Project Structure]** を選択します。

1. [Project Structure] ウィンドウが開きます。**[Project Settings]** で **[Modules]** を選択します。

   1. プロジェクト JDK を更新するには、**[SDK]** の横にあるドロップダウンリストから選択します。

   1. プロジェクト言語を更新するには、**[Language level]** の横にあるドロップダウンから選択します。

1. [**Project Settings**] で [**Modules**] を選択します。

   1. モジュール JDK を更新するには、**[SDK]** の横にあるドロップダウンリストから選択します。

   1. モジュール言語を更新するには、**[Language level]** の横にあるドロップダウンから選択します。

詳細については、JetBrains ドキュメントの「[Project structure settings﻿](https://www.jetbrains.com/help/idea/project-settings-and-structure.html)」と「[Module structure settings﻿](https://www.jetbrains.com/help/idea/configure-modules.html)」を参照してください。

**Maven 設定を更新する**

Maven Runner JRE を更新するには、次の手順を実行します。

1. JetBrains IDE で歯車アイコンをクリックし、表示されるメニューで **[Settings]** を選択します。

1. **[Settings]** ウィンドウで、**[Build, Execution, Deployment]**、**[Build Tools]**、**[Maven]**、**[Runner]** の順に選択します。

1. JRE フィールドで、変換するモジュールの構築に使用する JDK を選択します。

### VS Code でプロジェクトを設定する
<a name="configure-vsc"></a>

VS Code でプロジェクトを設定するには、プロジェクトに以下が含まれている必要があります。
+ プロジェクトルートフォルダの `pom.xml` ファイル
+ プロジェクトディレクトリの `.java` ファイル

プロジェクトに Maven ラッパー実行可能ファイル (macOS の場合は `mvnw`、Windows の場合は `mvnw.cmd`) が含まれている場合は、それがプロジェクトのルートにあることを確認してください。Amazon Q はこのラッパーを使用します。他の Maven の設定は必要ありません。

Maven ラッパーを使用しない場合は、Maven をインストールします。詳細については、Apache Maven ドキュメントの「[Installing Apache Maven](https://maven.apache.org/install.html)」を参照してください。

Maven をインストールしたら、`PATH` 変数に追加します。詳細については、「[Maven を `PATH` に追加するにはどうすればよいですか?](troubleshooting-code-transformation.md#add-maven-to-path) Your Java `runtime` variable should also be pointing to a JDK and not to a JRE」を参照してください。設定が正しいことを確認するには、`mvn -v` を実行します。出力には、Maven のバージョンと、JDK へのパスを指す `runtime` 変数が表示されます。

## ステップ 3: 依存関係のアップグレードファイルを作成する (オプション)
<a name="create-dependency-upgrade-file"></a>

*依存関係のアップグレードファイル*、プロジェクトの依存関係を一覧表示する YAML ファイル、および変換中にアップグレードするバージョンを Amazon Q に提供できます。依存関係のアップグレードファイルを提供することで、Amazon Q がアップグレードについて認識していないサードパーティーおよびファーストパーティーの依存関係を指定できます。

ファーストパーティーの依存関係とは、組織が管理し、ローカルまたは組織のプライベートネットワークでのみ利用可能なライブラリ、プラグイン、フレームワークを指します。Amazon Q は、ローカル環境でビルドを実行する際に、ファーストパーティーの依存関係にアクセスできます。詳細については、「[ローカル環境でのコードの構築](how-CT-works.md#java-local-builds)」を参照してください。サードパーティーの依存関係は、公開されているか、組織に固有ではないオープンソースの依存関係です。

YAML ファイルでアップグレードするファーストパーティーの依存関係を指定できます。Amazon Q は JDK アップグレード中にそれらをアップグレードします (例: Java 8 から 17 など)。最初の JDK アップグレード後に別の変換 (17 から 17 または 21 から 21) を開始して、サードパーティーの依存関係をアップグレードできます。

Amazon Q が最小限の JDK アップグレードを実行したら、別の変換を開始して、すべてのサードパーティーの依存関係をアップグレードできます。または、サードパーティーの依存関係とそのバージョンを YAML ファイルで指定して、ライブラリのアップグレード変換中にのみそれらの依存関係をアップグレードすることもできます。

Amazon Q では、変換中に依存関係のアップグレードファイルを指定するように求められます。指定する場合は、まずファイルが正しく設定されていることを確認します。YAML ファイルには、次のフィールドが必要です。
+ name - 依存関係のアップグレードファイルの名前。
+ description (オプション) - 依存関係のアップグレードファイルと、使用する変換の指定。
+ dependencyManagement - アップグレードする依存関係とプラグインのリストが含まれています。
+ dependencies - アップグレードするライブラリの名前とバージョンが含まれています。
+ plugins - アップグレードするプラグインの名前とバージョンが含まれています。
+ identifier - ライブラリ、プラグイン、またはその他の依存関係の名前。
+ targetVersion - アップグレード先の依存関係のバージョン。
+ versionProperty (オプション) - アプリケーションの `pom.xml` ファイルの `properties` タグで設定されている、定義する依存関係のバージョン。
+ originType - 依存関係がファーストパーティーかサードパーティーか (FIRST\$1PARTY または THIRD\$1PARTY のいずれかで指定)。

以下は、依存関係のアップグレード YAML ファイルの例と、Amazon Q が解析するために必要な設定です。

```
name: dependency-upgrade
  
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
  
  
dependencyManagement:
  
  dependencies:
  
    - identifier: "com.example:library1"
  
      targetVersion: "2.1.0"
  
      versionProperty: "library1.version"  # Optional
  
      originType: "FIRST_PARTY"   
  
    - identifier: "com.example:library2"
  
      targetVersion: "3.0.0"
  
      originType: "THIRD_PARTY"
  
  plugins:
  
    - identifier: "com.example.plugin"
  
      targetVersion: "1.2.0"
  
      versionProperty: "plugin.version"  # Optional
            
      originType: "THIRD_PARTY"
```

## ステップ 4: コードを変換する
<a name="transform-code-java"></a>

IDE のセットアップをテストするには、サンプルプロジェクトをダウンロードして解凍し、IDE の次の手順を実行します。提案された変更と変換の概要を表示できる場合は、独自のコードプロジェクトを変換する準備ができています。変換が失敗するということは、IDE が正しく設定されていません。設定の問題に対処するには、「[ステップ 2: プロジェクトを設定する](#configure-project)」と「[トラブルシューティング](troubleshooting-code-transformation.md)」を確認します。

**注記**  
コード変換中は、ローカルマシンをオフにしたり、閉じたり、スリープ状態にしたりしないでください。初期ビルドと検証ビルドでは、安定したネットワーク接続を必要とするクライアント側の環境を使用します。

コードプロジェクトまたはコードモジュールの言語バージョンをアップグレードするには、以下のステップを実行します。

------
#### [ JetBrains ]

1. JetBrains でアップグレードするモジュールを開きます。IDE でプロジェクトが正常にビルドされていることを確認します。

1. Amazon Q ロゴを選択し、開いたチャットパネルでアプリケーションを変換するように Amazon Q に依頼します。

1. **[アプリケーションの変換]** ポップアップが表示されます。ドロップダウンリストからアップグレードするプロジェクトを選択し、**[変換]** を選択します。

1. Amazon Q では、依存関係のアップグレードファイルを指定するように求められます。アップグレード先の依存関係とバージョンで YAML を設定している場合は、ファイルを追加します。Amazon Q はファイルを検証して、正しく設定されていることを確認します。エラーが発生した場合は、[ステップ 3: 依存関係のアップグレードファイルを作成する (オプション)](#create-dependency-upgrade-file) で説明されている形式と必須フィールドを確認してください。

1. Amazon Q が変換を開始します。進捗状況は、**[変換の詳細]** タブで確認できます。

1. 変換が完了したら、プロジェクトを更新する前にアップグレードされたコードを確認できます。新しいコードを表示するには、**[変換の詳細]** タブに移動し、**[差分の表示]** を選択します。表示される **[パッチを適用]** ウィンドウでファイルを選択して、ソースコードとアップグレードされたコードを含む差分ビューを開きます。

1. Amazon Q が加えた変更を受け入れるには、**[差分の表示]** を選択して **[パッチを適用]** ウィンドウを開きます。更新されたファイルをすべて選択し、**[OK]** を選択してプロジェクトを更新します。

1. コードのアップグレード方法の詳細と次のステップの提案を確認するには、**[変換の詳細]** タブで **[変換の概要を表示]** を選択します。

------
#### [ Visual Studio Code ]

1. VS Code でアップグレードするプロジェクトまたはワークスペースを開きます。プロジェクトが IDE で正常にビルドされていることを確認します。

1. Amazon Q ロゴを選択し、開いたチャットパネルでアプリケーションを変換するように Amazon Q に依頼します。

1. IDE の上部にある検索バーからアップグレードするプロジェクトを選択します。

1. Amazon Q でソースコードのバージョンが見つからない場合は、コードバージョンを選択するように求められます。ソースコードが書き込まれるバージョンを選択し、ポップアップで **[変換]** を選択して続行します。

1. プロンプトが表示されたら、JDK への `JAVA_HOME` パスを入力します。プロジェクトの設定の詳細については、「[VS Code プロジェクトを設定する](#configure-vsc)」を参照してください。

1. Amazon Q では、依存関係のアップグレードファイルを指定するように求められます。アップグレード先の依存関係とバージョンで YAML を設定している場合は、ファイルを追加します。Amazon Q はファイルを検証して、正しく設定されていることを確認します。エラーが発生した場合は、[ステップ 3: 依存関係のアップグレードファイルを作成する (オプション)](#create-dependency-upgrade-file) で説明されている形式と必須フィールドを確認してください。

1. Amazon Q が変換を開始します。**[変換ハブ]** タブで進捗状況を確認できます。

1. 変換が完了すると、**[変更案]** タブが開きます。プロジェクトを更新する前にアップグレードされたコードを確認するには、**[変更案をダウンロード]** を選択します。ファイルを選択して、ソースコードとアップグレードされたコードを含む差分ビューを開きます。

1. Amazon Q の変更を受け入れるには、**[変更案]** タブに移動し、**[受け入れる]** を選択します。

1. コードのアップグレード方法の詳細と次のステップの提案を確認するには、**[変換ハブ]** で **[ビューおよびその他のアクション]** 省略記号ボタンをクリックし、**[変換の概要を表示]** を選択します。

------

# Amazon Q Developer が Java 言語アップグレードのコードを変換する仕組み
<a name="how-CT-works"></a>

コードを変換するために、Amazon Q Developer はプロジェクトのコード言語バージョンのアップグレードに使用する変換プランを生成します。コードを変換すると、変換の概要とファイルの差分が表示され、変更を受け入れる前に内容を確認できます。Amazon Q Developer は、アップグレードされたコードにターゲット JDK との互換性を持たせるための必要最小限の変更を行うため、プロジェクトのライブラリと依存関係をアップグレードするには追加の変換が必要です。以下のセクションでは、Amazon Q が変換を実行する方法について詳しく説明します。

## コードをビルドし、変換プランを作成する
<a name="build-code-create-plan"></a>

コードの変換を開始するために、Amazon Q はプロジェクトをローカルでビルドし、ソースコード、プロジェクトの依存関係、ビルドログを含むビルドアーティファクトを生成します。

ビルドアーティファクトを生成した後、Amazon Q は安全なビルド環境にコードをビルドし、アップグレードするプロジェクトまたはモジュールに合わせてカスタマイズされた変換プランを作成します。変換プランでは、Amazon Q が行おうとしている特定の変更点の概要が説明されます。これには、新しい依存関係バージョン、主要なコード変更、廃止されたコードの代替案が含まれます。こうした変更は、コードの予備ビルドに基づいており、変換中に変更される可能性があります。

## コードを変換する
<a name="transform-code"></a>

コードを変換するために、Amazon Q は変換プランで提案された変更に基づいて、ターゲット Java バージョンへのコードのアップグレードを試みます。変更を行う際には、ソースコード内の既存のユニットテストを再ビルドして実行し、発生したエラーを繰り返し修正します。JDK のアップグレードは、次のソースコードバージョンからターゲットバージョンに行うことができます。
+ Java 8 から 17
+ Java 8 から 21
+ Java 11 から 17
+ Java 11 から 21
+ Java 17 から 21

Amazon Q は、コードをターゲット Java バージョンと互換性を持たせるために必要な最小限の変更を行います。Amazon Q が最小限の JDK アップグレードを実行したら、別の変換を開始して、すべてのサードパーティーの依存関係をアップグレードできます。または、サードパーティーの依存関係とそのバージョンを YAML ファイルで指定して、ライブラリのアップグレード変換中にのみそれらの依存関係をアップグレードすることもできます。

Amazon Q は、コードをアップグレードする際に次の変更を試みます。
+ ターゲット Java バージョンの推奨事項に従って、廃止されたコードコンポーネントを更新する
+ 一般的なライブラリとフレームワークをターゲット Java バージョンと互換性のあるバージョンにアップグレードする。これには、次のライブラリとフレームワークを最新の利用可能なメジャーバージョンに更新することが含まれます。
  + Apache Commons IO 
  + Apache HttpClient 
  + bc-fips 
  + Cucumber-JVM 
  + 休止 
  + jackson-annotations 
  + JakartaEE
  + Javax 
  + javax.servlet 
  + jaxb-api 
  + jaxb-impl 
  + jaxen 
  + jcl-over-slf4j 
  + json-simple 
  + jsr305 
  + junit 
  + junit-jupiter-api 
  + Log4j 
  + Micronaut 
  + Mockito 
  + mockito-core 
  + Okio 
  + PowerMockito 
  + Quarkus 
  + slf4j 
  + slf4j-api 
  + Spring Boot 
  + Spring Framework 
  + Spring Security 
  + Swagger 
  + testng 

**注記**  
クライアント側のビルドでは安定したネットワーク接続が必要であるため、コード変換中にローカルマシンをオフまたは閉じないでください。

## ローカル環境でのコードの構築
<a name="java-local-builds"></a>

変換中、Amazon Q はローカル環境で検証ビルドを実行します。Amazon Q は、サーバー側でコードを複数のステップで変換します。各ステップの後、Amazon Q はローカル環境にコードを送信し、変更をビルドしてテストします。その後、コードをサーバー側に送信して変換を続行します。

ローカル環境のビルドは、Amazon Q がプライベートリソースへのアクセスを必要とするテストを実行できるようにすることで、変換されたコードを検証するのに役立ちます。ローカル環境で AI 生成コードの構築に関連するセキュリティリスクを最小限に抑えるために、Amazon Q は生成するコードを確認し、セキュリティ上の懸念に対応するように更新します。

## 変換の概要を確認し、変更を受け入れる
<a name="review-plan-accept-changes"></a>

変換が完了すると、Amazon Q は、プロジェクト全体がアップグレードされたかどうかを示す最終ビルドのステータスなど、変更の詳細を含む変換の概要を用意します。ビルドログの概要を確認して、Amazon Q がアップグレードされたバージョンでコードをビルドできない原因となった問題を解明することもできます。

変換の概要には、変換プランの提案された変更とコードのアップグレードのために最終的に Amazon Q が行った変更の違い、元のプランになかった追加の変更についても記載されています。

変換の概要を確認したら、Amazon Q が提案している変更をファイル差分ビューで表示できます。Amazon Q が提案するコード変更は、変更を受け入れるまで現在のプロジェクトファイルには影響しません。変換されたコードは、変換が完了してから 30 日後まで使用できます。

## 部分的に成功した変換を完了する
<a name="partially-successful-transformations"></a>

コードベースの複雑さと詳細によっては、変換が部分的に成功する場合があります。これは、Amazon Q がプロジェクト内の特定のファイルやコード領域のみを変換できたことを意味します。この場合、更新された言語バージョンでビルドできるように、プロジェクトの残りのコードを手動で更新する必要があります。

残りのコードを変換するには、IDE で Amazon Q チャットを使用します。Amazon Q に部分的に更新されたファイルを確認し、コンパイルエラーなどの問題に対処するための新しいコードを提供するようにリクエストします。また、[特徴量開発](q-in-IDE-chat.md#develop-code)や [Workspace コンテキスト](workspace-context.md)などの機能を使用して、より多くのプロジェクトをコンテキストとして含め、一度に複数のファイルの提案を取得することもできます。

# Amazon Q Developer を使用した Java アプリケーションの埋め込み SQL の変換
<a name="transform-sql"></a>

IDE でのコード変換用の Amazon Q Developer エージェントは、 AWS Database Migration Service 埋め込み SQL を (AWS DMS) を使用して Oracle から PostgreSQL データベースへの移行を完了するのに役立ちます。

AWS DMS は、リレーショナルデータベース、データウェアハウス、NoSQL データベース、およびその他のタイプのデータストアを移行できるようにするクラウドサービスです。 AWS DMS の DMS Schema Conversion を使うと、ターゲットデータベースに適用できるようにデータベーススキーマとコードオブジェクトを変換することができます。詳細については、「 *AWS Database Migration Service ユーザーガイド*」の[「What is AWS Database Migration Service?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)」を参照してください。

 AWS DMS および DMS Schema Conversion を使用してデータベースを移行する場合、アプリケーションに埋め込まれた SQL をターゲットデータベースと互換性があるように変換する必要がある場合があります。埋め込み SQL は手動で変換するのではなく、IDE で Amazon Q を使用して自動的に変換できます。Amazon Q は、DMS Schema Conversion のメタデータを使用して、アプリケーションの埋め込み SQL をターゲットデータベースに対応するバージョンに変換します。

現在 Amazon Q では、PostgreSQL に移行する Oracle データベースの Java アプリケーションに埋め込まれた SQL を変換できます。SQL コードを変換するオプションは、アプリケーションに Oracle SQL ステートメントが含まれている場合のみ IDE で 表示されます。詳細については、前提条件を参照してください。

## ステップ 1: 前提条件
<a name="sql-transform-prereqs"></a>

続行する前に、「[IDE で Amazon Q のセットアップ](q-in-IDE-setup.md)」の手順が完了していることを確認してください。

SQL 変換のコード変換ジョブを開始する前に、以下の前提条件を満たしていることを確認します。
+ SQL が埋め込まれた Java アプリケーションを Oracle データベースから PostgreSQL データベースに移行するため、変換の要件を満たすには、アプリケーションに Oracle SQL ステートメントが含まれている必要があります。
+  AWS DMS Schema Conversion を使用してデータベーススキーマを変換するプロセスを済ませておきます。詳細については、「*データベース移行ガイド*」の「[Migrating Oracle databases to Amazon RDS for PostgreSQL with DMS Schema Conversion](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html)」を参照してください。
+ スキーマ変換が完了したら、DMS AWS コンソールから移行プロジェクトファイルをダウンロードします。

## ステップ 2: アプリケーションを設定する
<a name="sql-transform-configure"></a>

埋め込み SQL コードを変換するには、Java プロジェクトに少なくとも 1 つの `.java` ファイルが含まれている必要があります。

JetBrains IDE を使用している場合は、プロジェクト構造の設定で、SDK フィールドを該当する JDK に設定する必要があります。プロジェクト構造の設定については、JetBrains のドキュメントの「[Project structure settings](https://www.jetbrains.com/help/idea/project-settings-and-structure.html)」を参照してください。

## ステップ 3: 埋め込み SQL を変換する
<a name="convert-sql"></a>

Java アプリケーションの埋め込み SQL コードを PostgreSQL ターゲットデータベースに対応する形式に変換するには、次の手順を実行します。

1. Amazon Q がインストールされている IDE で、変換する埋め込み SQLが含まれている Java コードベースを開きます。

1. Amazon Q アイコンをクリックして、チャットパネルを開きます。

1. チャットパネルでアプリケーションを変換するように Amazon Q に依頼します。

1. Java アプリケーションが SQL 変換の条件を満たしている場合、実行する変換の種類を選択するように求められます。**SQL conversion** と入力します。

1. Amazon S3 から取得したスキーマメタデータファイルをアップロードするように求められます。ファイルを取得する手順がチャットで示されます。

1. 埋め込み SQL が含まれるプロジェクトとデータベーススキーマファイルを指定するように求められます。チャットパネルのドロップダウンメニューから適切なファイルを選択します。

1. データベーススキーマから Amazon Q が取得した詳細が正確であることを確認します。

1. Amazon Q が SQL コードの変換を開始します。これには数分かかる場合があります。

1. SQL コードを変換した後、ファイルに加えられた更新が差分として提示されます。差分に示された変更を確認し、変更を受け入れてコードを更新します。

   Amazon Q では、変更の詳細を示す変換の概要も提供されます。

1. コードを更新したら、DMS AWS コンソールに戻り、新しい SQL が移行されたデータベースと互換性があることを確認します。

# Amazon Q Developer を使用したコマンドラインでのコード変換
<a name="transform-CLI"></a>

Amazon Q Developer コマンドライン変換ツールを使用して、コマンドラインからアプリケーションを変換できます。コードを変換するには、ソースコードと必要な設定ファイルへのパスを指定します。Amazon Q は一連のステップで新しいコードを生成します。変換全体を通して、Amazon Q はローカル環境でコードをビルドして、変更を検証します。詳細については、「[ローカル環境でのコードの構築](#local-builds)」を参照してください。Amazon Q は、コード変更をコミットする新しいブランチをリポジトリに作成します。変換が完了したら、ブランチを元のブランチにマージして、変更をコードベースに組み込むことができます。

開始するには、コマンドラインツールをインストールして認証し、変換を設定して開始するコマンドを確認します。

**Topics**
+ [

## ローカル環境でのコードの構築
](#local-builds)
+ [

## コマンド
](#commands)
+ [

# Amazon Q Developer のコマンドラインで変換を実行する
](run-CLI-transformations.md)
+ [

# コマンドラインでの変換のトラブルシューティング
](troubleshooting-CLI-transformations.md)
+ [

# Amazon Q Developer コマンドライン変換ツールのバージョン履歴
](transform-CLI-versions.md)

## ローカル環境でのコードの構築
<a name="local-builds"></a>

変換中、Amazon Q はローカル環境で検証ビルドを実行します。Amazon Q は、サーバー側でコードを複数のステップで変換します。各ステップの後、Amazon Q はローカル環境にコードを送信し、変更をビルドしてテストします。その後、コードをサーバー側に送信して変換を続行します。

ローカル環境のビルドは、Amazon Q がプライベートリソースへのアクセスを必要とするテストを実行できるようにすることで、変換されたコードを検証するのに役立ちます。ローカル環境で AI 生成コードの構築に関連するセキュリティリスクを最小限に抑えるために、Amazon Q は生成するコードを確認し、セキュリティ上の懸念に対応するように更新します。

**注記**  
Amazon Q は、プロジェクトのリクエスト、説明、コンテンツに基づいて変換を実行します。セキュリティを維持するには、外部で未検証のアーティファクトをプロジェクトリポジトリに含めないようにし、機能とセキュリティの両方について変換されたコードを常に検証します。

## コマンド
<a name="commands"></a>

これらのコマンドを実行する手順については、「[Amazon Q Developer のコマンドラインで変換を実行する](run-CLI-transformations.md)」を参照してください。

変換を設定し、Amazon Q Developer Pro に対して認証するには、以下を実行します。

```
qct configure
```

Java アップグレードの変換を開始するには、次のコマンドを実行します。*<your-source-java-version>* には、`JAVA_1.8`、`JAVA_8`、`JAVA_11`、`JAVA_17`、または `JAVA_21` を入力できます。*<your-target-java-version>* には、`JAVA_17` または `JAVA_21` を入力できます。`--source_version` および `--target_version` はオプションです。`--trust` フラグを使用すると、セキュリティを維持するためにコードを検証しながら変換を実行できます。

```
qct transform --source_folder <path-to-folder>
    --source_version <your-source-java-version>        
    --target_version <your-target-java-version>
    --trust
```

SQL 変換を開始するには、以下を実行します。

```
qct transform --source_folder <path-to-folder>
    --sql_conversion_config_file <path-to-sql-config-file>
```

使用している変換用のコマンドラインツールのバージョンを確認するには、以下を実行します。

```
qct -v
```

変換に関するヘルプを表示するには、以下を実行します。

```
qct -h
```

変換ジョブの履歴を表示するには、以下を実行します。

```
qct history
```

変換ジョブ履歴の表示と管理の詳細については、「[コマンドラインでのジョブ履歴の表示](transformation-job-history.md#cli-job-history)」を参照してください。

# Amazon Q Developer のコマンドラインで変換を実行する
<a name="run-CLI-transformations"></a>

Amazon Q Developer コマンドラインツールを使用してコマンドラインでコードを変換するには、次の手順を実行します。

## 前提条件
<a name="CLI-transformation-prerequisites"></a>

コマンドラインで変換を開始する前に、次の前提条件を満たす必要があります。
+ Java コードバージョンをアップグレードする場合、プロジェクトは [Amazon Q で Java バージョンをアップグレードするための前提条件を満たしている](code-transformation.md#java-upgrade-prerequisites)こと。
+ Java アプリケーションで埋め込み SQL を変換する場合、アプリケーションは [Amazon Q で埋め込み SQL を変換するための前提条件を満たしている](transform-sql.md#sql-transform-prereqs)こと。
+ コマンドライン環境に Python がインストールされていること。これは、コマンドラインツールのインストール方法です。現在サポートされている Python の最小バージョンは 3.12 です。
+ macOS または Linux で変換を実行していること。
+ アプリケーションのサイズは 2 GB 以下であること。
+ Amazon Q でアップグレードする特定の依存関係がある場合、[依存関係のアップグレードファイル](#step-3-dependency-upgrade-file)を設定済みであること。

## ステップ 1: 認証方法を選択し、アクセス許可を追加する
<a name="step-1-permissions-auth"></a>

IAM アイデンティティセンターを認証して、コマンドラインで変換を実行できます。適切なアクセス許可を持っていることを確認します。

**注記**  
カスタマーマネージドキーは、コマンドラインで実行する変換ではサポートされていません。

### アクセス許可を追加する
<a name="transform-CLI-add-permissions"></a>

認証に使用する Amazon Q Developer サブスクリプションに関連付けられている IAM ID には、コマンドラインで変換を実行するアクセス許可が必要です。続行する前に、IAM ID に [ユーザーにコマンドラインでの変換の実行を許可する](id-based-policy-examples-users.md#id-based-policy-examples-allow-cli-transformations) で定義されたアクセス許可があることを確認します。

### Amazon Q Developer サブスクリプションを介した IAM アイデンティティセンターの認証
<a name="auth-IdC"></a>

IAM アイデンティティセンターで認証するには、ユーザーが管理者によって[ワークフォースユーザーとして Amazon Q Developer Pro にサブスクライブ](subscribe-users.md)されており、ユーザーがサブスクリプションを通じて認証するための開始 URL を指定する必要があります。ユーザーまたは管理者は、Amazon Q Developer コンソールで開始 URL を確認することができます。詳細については、[Amazon Q Developer で使用する開始 URL の表示](manage-account-details.md) を参照してください。

必要なアクセス許可を追加するには、「[アクセス許可を追加する](#transform-CLI-add-permissions)」を参照してください。

[ステップ 4: 設定および認証](#step-4-configure-auth) で開始 URL を指定します。

## ステップ 2: ツールのインストール
<a name="step-2-install"></a>



1. [変換用の Amazon Q コマンドラインツールをダウンロード](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip)して解凍します。

   コマンドラインツールの以前のバージョンをダウンロードするには、「[バージョン履歴](transform-CLI-versions.md)」を参照してください。

1. ツールをインストールするには、Python で仮想環境を設定することをお勧めします。仮想環境を作成するには、ツールをインストールするディレクトリでターミナルウィンドウを開き、以下を実行します。

   ```
   python -m venv qct-cli 
   ```

1. 仮想環境を有効にするには、次の手順を実行します。

   ```
   source qct-cli/bin/activate 
   ```

1. コマンドラインにツールをインストールするには、マシンアーキテクチャに基づいて、ツールを解凍した場所へのパスで次のコマンドを実行します。

------
#### [ Linux\$1aarch64 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
#### [ Linux\$1x86\$164 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
**注記**  
変換に古いバージョンのコマンドラインツールを使用している場合は、`1.2.2` をダウンロードした[バージョン](transform-CLI-versions.md)に置き換えます。

1. ツールがインストールされていることを確認するには、以下を実行します。

   ```
   which qct
   ```

## ステップ 3: 依存関係のアップグレードファイルを作成する (オプション)
<a name="step-3-dependency-upgrade-file"></a>

*依存関係のアップグレードファイル*、プロジェクトの依存関係を一覧表示する YAML ファイル、および変換中にアップグレードするバージョンを Amazon Q に提供できます。依存関係のアップグレードファイルを提供することで、Amazon Q がアップグレードについて認識していないサードパーティーおよびファーストパーティーの依存関係を指定できます。

ファーストパーティーの依存関係とは、組織が管理し、ローカルまたは組織のプライベートネットワークでのみ利用可能なライブラリ、プラグイン、フレームワークを指します。Amazon Q は、ローカル環境でビルドを実行する際に、ファーストパーティーの依存関係にアクセスできます。詳細については、「[ローカル環境でのコードの構築](transform-CLI.md#local-builds)」を参照してください。サードパーティーの依存関係は、公開されているか、組織に固有ではないオープンソースの依存関係です。

YAML ファイルでアップグレードするファーストパーティーの依存関係を指定できます。Amazon Q は JDK アップグレード中にそれらをアップグレードします (例: Java 8 から 17 など)。最初の JDK アップグレード後に別の変換 (17 から 17 または 21 から 21) を開始して、サードパーティーの依存関係をアップグレードできます。

Amazon Q が最小限の JDK アップグレードを実行したら、別の変換を開始して、すべてのサードパーティーの依存関係をアップグレードできます。または、サードパーティーの依存関係とそのバージョンを YAML ファイルで指定して、ライブラリのアップグレード変換中にのみそれらの依存関係をアップグレードすることもできます。

Amazon Q では、変換中に依存関係のアップグレードファイルを指定するように求められます。指定する場合は、まずファイルが正しく設定されていることを確認します。YAML ファイルには、次のフィールドが必要です。
+ name - 依存関係のアップグレードファイルの名前。
+ description (オプション) - 依存関係のアップグレードファイルと、使用する変換の指定。
+ dependencyManagement - アップグレードする依存関係とプラグインのリストが含まれています。
+ dependencies - アップグレードするライブラリの名前とバージョンが含まれています。
+ plugins - アップグレードするプラグインの名前とバージョンが含まれています。
+ identifier - ライブラリ、プラグイン、またはその他の依存関係の名前。
+ targetVersion - アップグレード先の依存関係のバージョン。
+ versionProperty (オプション) - アプリケーションの `pom.xml` ファイルの `properties` タグで設定されている、定義する依存関係のバージョン。
+ originType - 依存関係がファーストパーティーかサードパーティーか (FIRST\$1PARTY または THIRD\$1PARTY のいずれかで指定)。

以下は、依存関係のアップグレード YAML ファイルの例と、Amazon Q が解析するために必要な設定です。

```
name: dependency-upgrade
  
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
  
  
dependencyManagement:
  
  dependencies:
  
    - identifier: "com.example:library1"
  
      targetVersion: "2.1.0"
  
      versionProperty: "library1.version"  # Optional
  
      originType: "FIRST_PARTY"   
  
    - identifier: "com.example:library2"
  
      targetVersion: "3.0.0"
  
      originType: "THIRD_PARTY"
  
  plugins:
  
    - identifier: "com.example.plugin"
  
      targetVersion: "1.2.0"
  
      versionProperty: "plugin.version"  # Optional
            
      originType: "THIRD_PARTY"
```

## ステップ 4: 設定および認証
<a name="step-4-configure-auth"></a>

変換を開始する前に、IAM アイデンティティセンターで認証し、変換の設定の詳細を指定する必要があります。

1. 変換設定プロセスを開始するには、次のコマンドを実行します。

   ```
   qct configure
   ```

1. サポートされている Java バージョンごとに JDK パスを入力するように求められます。Java アプリケーションのソースバージョンの JDK へのパスのみを指定する必要があり、ターゲットバージョンを指定する必要はありません。

1. 次に、IAM アイデンティティセンターで認証するには、Amazon Q Developer Pro サブスクリプションプロファイルの開始 URL を入力するように求められます。

   次に、サブスクライブした AWS リージョン を の形式で入力します`us-east-1`。サポートされているリージョンのリストについては「[サポート対象のリージョン](regions.md)」を参照してください。リージョンコードの一覧については、「*AWS 全般のリファレンス guide*」の「[Regional endpoints ](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)」を参照してください。

1. 設定は configuration.ini ファイルに保存されます。

## ステップ 5: 変換を実行する
<a name="step-5-run-transformation"></a>

実行する変換のタイプを選択して、必要な設定とコマンドを表示します。

**注記**  
クライアント側のビルドでは安定したネットワーク接続が必要であるため、コード変換中にローカルマシンをオフまたは閉じないでください。

------
#### [ Java upgrade ]

**変換プランの変更**

Java バージョンのアップグレード中、Amazon Q は変換プランを生成し、変換を開始する前に確認できます。プランに対して次の変更をリクエストすることができます。
+ プランに含まれる一覧からどのライブラリを Amazon Q がアップグレードするか
  + プロンプトの例:
    + <dependency1>、<dependency2>、<dependency5> のみをアップグレードする
    + <dependency1> または <dependency2> をアップグレードしない
+ ライブラリをアップグレードするターゲットバージョン
  + プロンプトの例:
    + <version> の代わりに <dependency> をこのバージョンにアップグレードする
+ Amazon Q でどのステップを実行するか
  + プロンプトの例:
    + ステップ 1～7 のみを完了する
    + ステップ 5～9 を実行しない
+ アップグレードする依存関係を追加する (新しい JDK バージョンにアップグレードする場合のみ選択可)
  + プロンプトの例:
    + <dependency1> も <version2> にアップグレードする

**Java コードのアップグレード**

1. 次のコマンドを実行して、Java アップグレードの変換を開始します。`<path-to-folder>` を変換するコードを含むフォルダへのパスに、`<your-target-java-version>` を `JAVA_17` または `JAVA_21` に、それぞれ置き換えます。

   ```
   qct transform --source_folder <path-to-folder>
       --target_version <your-target-java-version>
   ```

   追加のコマンドオプション: 
   + アップグレードする依存関係を指定する場合は、依存関係のアップグレードファイルへのパスを指定して `--dependency_upgrade_file` オプションを追加します。
   + 変換プランを確認または更新しない場合は、コマンドに `--no-interactive` フラグを追加します。Amazon Q はプランに関するフィードバックを求めません。また、変更をリクエストする機会もありません。

1. Maven バージョンは、変換を開始する前に検証されます。サポートされている最小バージョンがある場合は、次の出力が表示されます。

   ```
   Running command: mvn --version at: path/to/current/directory 
   Your Maven version is supported for transformations.
   ```

   サポートされている Maven バージョンがない場合は、更新して続行する必要があります。詳細については、「[前提条件](#CLI-transformation-prerequisites)」を参照してください。

1. `--no-interactive` フラグを追加しなかった場合、Amazon Q は変換プランに関するフィードバックを提供するようプロンプトが表示されます。変更を英語の自然言語で説明できます。Amazon Q は、リクエストした変更をサポートできる場合はプランを更新します。

1. Amazon Q が変換を開始します。変換中にステータスの更新が出力されます。完了すると、Amazon Q は変換結果、ログ、および設定ファイルが出力されるパスを提供します。

   アップグレードされたコードは、Amazon Q が作成した新しいブランチにコミットされます。Amazon Q は、`qct configure` の実行時に選択した内容に応じて、1 つ以上のコミットでコードをコミットします。

1. Java バージョンのアップグレード後に別の変換を実行している場合は、最初の変換からの変更をコミットしたのと同じブランチで 2 番目の変換を開始します。

------
#### [ SQL conversion ]

開始する前に [Amazon Q Developer を使用した Java アプリケーションの埋め込み SQL の変換](transform-sql.md) を読み、このタイプの変換の前提条件を理解してください。

1. 埋め込み SQL を変換するには、まず [AWS DMS スキーマ変換](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html) からスキーマメタデータファイルへのパスを含む YAML ファイルを作成する必要があります。

   必要なファイル形式は次のとおりです。

   ```
   schema_conv_metadata_path: <path-to-metadata-zip-file>
   ```

1. 次のコマンドを実行して、SQL 変換を開始します。`<path-to-folder>` を変換するコードを含むフォルダへのパスに、`<path-to-sql-config-file>` をステップ 1 で作成した YAML ファイルへのパスに、それぞれ置き換えます。

   ```
   qct transform --source_folder <path-to-folder>
       --sql_conversion_config_file <path-to-sql-config-file>
   ```

1. Amazon Q がスキーマメタデータファイルで複数のスキーマを検出した場合、変換を停止し、検出されたスキーマの一覧を提供します。SQL 変換に使用するスキーマを選択し、YAML ファイルに新しいフィールド `schema: <schema-name>` を追加します。

1. Amazon Q が変換を開始します。変換中にステータスの更新が出力されます。完了すると、Amazon Q は変換結果、ログ、および設定ファイルが出力されるパスを提供します。

   アップグレードされたコードは、Amazon Q が作成した新しいブランチにコミットされます。

------

## 変換の一時停止またはキャンセル
<a name="pause-cancel-CLI-transformations"></a>

現在の変換ジョブを一時停止またはキャンセルできます。変換ジョブは、再開するまで最大 12 時間一時停止できます。

**コード変換ジョブを一時停止またはキャンセルするには、次の手順を実行します。**

1. CLI ターミナルで、キーボードの **Ctrl\$1C** を押します。

1. 変換を一時停止するかキャンセルするかを選択します。
   + コード変換ジョブを一時停止する場合は、`1` を入力します。12 時間以内にジョブを再開して、QCT コマンド ``qct transform --source_folder=≤/Path/Given/Originally/To/QCT>`` を使用してコード変換を続行できます。
   + コード変換ジョブをキャンセルする場合は、`2` を入力します。

# コマンドラインでの変換のトラブルシューティング
<a name="troubleshooting-CLI-transformations"></a>

以下の情報は、Amazon Q Developer のコマンドラインでアプリケーションを変換する際の一般的な問題のトラブルシューティングに役立ちます。

## ベアラートークンが更新されないのはなぜですか?
<a name="bearer-token-refresh"></a>

次のエラーが表示された場合は、認証に使用されるベアラートークンを更新する必要があります。

```
Refreshing bearer token
('Error refreshing bearer token due to: ', InvalidGrantException('An error occurred (InvalidGrantException) when calling the CreateToken operation: '))
('Error getting bearer token due to: ', RuntimeError(('Error refreshing bearer token due to: ', InvalidGrantException('An error occurred (InvalidGrantException) when calling the CreateToken operation: '))))
```

このエラーを修正するには、次のコマンドを実行します。

```
rm ~/.aws/qcodetransform/credentials.json
```

古い認証情報ファイルを削除したら、`qct transform` を再度実行して変換を再開します。

## コマンドラインツールの最新バージョンが使用されていないのはなぜですか?
<a name="install-latest-version"></a>

変換用に新しいバージョンのコマンドラインツールをダウンロードしても、以前のバージョンのツールが引き続き使用されることがあります。

ツールの最新バージョンを使用するには、[最新バージョン](transform-CLI-versions.md)をダウンロードします。次に、マシンアーキテクチャに基づいて、ツールを解凍した場所へのパスで次のコマンドを実行します。

------
#### [ Linux\$1aarch64 ]

```
pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.2-py3-none-any.whl --force-reinstall
```

------
#### [ Linux\$1x86\$164 ]

```
pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.2-py3-none-any.whl --force-reinstall
```

------

**注記**  
変換に古いバージョンのコマンドラインツールを使用している場合は、`1.2.2` をダウンロードした[バージョン](transform-CLI-versions.md)に置き換えます。

# Amazon Q Developer コマンドライン変換ツールのバージョン履歴
<a name="transform-CLI-versions"></a>

Amazon Q Developer コマンドライン変換ツールの現在および過去のリリースの詳細については、次の情報を参照してください。この表には、各バージョンのダウンロードリンク、リリース日、リリースノートが含まれています。


****  

| バージョン | リリース日 | リリースノート | 
| --- | --- | --- | 
|   [1.2.2 (最新)](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip)   | 2026 年 2 月 26 日 | AWS Transform custom のプロモーションバナーを QCT CLI に追加しました。変換コマンドの実行とヘルプテキストにバナーが表示されます。バナー出力を抑制する新しい --skip-banner フラグ。 | 
|   [1.2.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.1.zip)   | 2025 年 9 月 9 日 | 最初のプロジェクトアップロード中にファーストパーティーの親 POM を含めるように Maven 拡張機能を更新 | 
|   [1.2.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.0.zip)   | 2025 年 8 月 7 日 | Maven Java プロジェクトのジョブ履歴の表示とモジュール構造の視覚化のサポートが追加されました。 | 
|   [1.1.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.1.0.zip)   | 2025 年 7 月 21 日 | 変換に関するテレメトリの収集のサポートが含まれています。 | 
|   [1.0.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.0.0.zip)   | 2025 年 6 月 27 日 | コマンドライン変換ツールは一般公開されており、Amazon Q Developer Pro サブスクリプションでのみ AWS IAM Identity Center による認証をサポートしています。欧州 (フランクフルト) リージョンでのサブスクリプションのサポートが追加されました。 | 
|   [0.6.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.6.0.zip)   | 2025 年 6 月 6 日 | 依存関係のアップグレードファイルの提供と変換プランのイテレーションサポートが含まれています。 | 
|   [0.5.2](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.2.zip)   | 2025 年 4 月 16 日 | ファーストパーティーの依存関係を持つアプリケーションのジョブと失敗を再開する際の問題を解決するためのバグ修正。 | 
|   [0.5.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.1.zip)   | 2025 年 3 月 13 日 | IAM で認証する場合、 AWS リージョンを指定する必要はなくなりました。出力ログのジョブステータスに関するバグ修正も含まれています。 | 
|   [0.5.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.0.zip)   | 2025 年 2 月 28 日 | を介した IAM による認証のサポートが含まれています AWS CLI。 | 
|   [0.4.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.4.1.zip)   | 2025 年 2 月 17 日 | Amazon Q Developer サブスクリプションが設定され AWS リージョン ている の入力のサポートを含むバグ修正。 | 
|   [0.4.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.4.0.zip)   | 2025 年 2 月 14 日 | Java アプリケーションを Java 21 にアップグレードするためのサポートが含まれています。 | 
|   [0.3.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.3.0.zip)   | 2025 年 2 月 12 日 | Java アプリケーションでの埋め込み SQL の変換のサポートが含まれています。 | 
|   [0.2.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.2.0.zip)   | 2025 年 2 月 3 日 | 複数のコミットでアップグレードされた Java コードを受信するためのサポートが含まれています。 | 
|  [0.1.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.1.0.zip)  | 2024 年 11 月 27 日 | 初回リリース。コマンドラインから Java コードバージョンをアップグレードするためのサポートが含まれています。 | 

# 変換ジョブ履歴の表示
<a name="transformation-job-history"></a>

Amazon Q では、Java 変換ジョブ履歴の包括的な概要が提示され、IDE とコマンドラインの両方で変換ジョブを追跡して確認できます。

変換ジョブ履歴には、ジョブに関する次の情報が含まれます。
+ **日付** – 変換ジョブが実行された日時
+ **プロジェクト名** – 変換されたプロジェクトの名前
+ **ステータス** – 変換ジョブの現在のステータス
+ **時間** – 変換が完了するまでにかかった時間
+ **ジョブ ID** – 変換ジョブの一意の識別子
+ **差分パッチ** – すべてのコード変更を示す最終的な差分パッチファイルへのリンクまたはパス
+ **概要** – 変更の詳細が示された変換の概要ファイルへのリンクまたはパス

**注記**  
この機能がリリースされてから実行された変換のみがジョブ履歴に表示されます。機能のリリース日については、「[Amazon Q Developer ユーザーガイドのドキュメント履歴](doc-history.md)」を参照してください。

## IDE でのジョブ履歴の表示
<a name="ide-job-history"></a>

**注記**  
この機能は現在、Visual Studio Code でのみ使用できます。

Visual Studio Code の変換ハブによって、Java 変換ジョブ履歴を包括的に確認できます。

変換ハブのテーブルには、過去 30 日での最新の変換ジョブ 10 件が一覧表示されます。テーブルから変換アーティファクトと更新ジョブにアクセスし、進行状況を追跡して、不足しているアーティファクトを取得できます。

### 変換アーティファクトを取得する
<a name="retrieve-artifacts"></a>

差分パッチや概要ファイルなどの変換アーティファクトには、ジョブ履歴テーブルからアクセスできます。適切なリンクを選択して、IDE で差分または概要を開きます。

アーティファクトは `.aws/transform` ディレクトリにローカルに保存されるため、以前にダウンロードした過去のジョブの変換アーティファクトにアクセスすることもできます。

### ジョブのステータスを更新する
<a name="refresh-jobs"></a>

ジョブ履歴テーブルからジョブのステータスを更新できます。Amazon Q が失敗したジョブを再開できる場合などは、まだサーバーに達していない可能性のある最新のステータスをサーバー側から取得できるよう、失敗したジョブを更新できます。まだ表示されていないアーティファクトをダウンロードするために、完了したジョブを更新することもできます。

### IDE で実行されるジョブのジョブ履歴の保存方法
<a name="ide-history-storage"></a>

Visual Studio Code の場合、変換ジョブのすべての情報とアーティファクトは `.aws/transform` ディレクトリにローカルに保存されます。ストレージは次のような構造になっています。

```
.aws/transform/
├── [project-name-1]/
│   ├── [job-id-1]/
│   │   ├── diff.patch
│   │   ├── [summary-1]/
│   │   │   └── summary.md
│   │   │   └── buildCommandOutput.log
│   └── [job-id-2]/
│       ├── diff.patch
│       ├── [summary-2]/
│       │   └── summary.md
│       │   └── buildCommandOutput.log
└── [project-name-2]/
    └── [job-id-3]/
        ├── diff.patch
        ├── [summary-3]/
        │   └── summary.md
        │   └── buildCommandOutput.log
```

## コマンドラインでのジョブ履歴の表示
<a name="cli-job-history"></a>

コマンドラインでの変換の場合、**qct history** コマンドで変換ジョブ履歴とカスタマイズオプションにアクセスできます。

CLI の場合、変換ジョブの履歴情報は `.aws/qcodetransform/history/` ディレクトリにローカルに保存されます。

### qct history コマンドの使用
<a name="cli-history-command"></a>

変換ジョブ履歴を表示するための基本的なコマンドは次のとおりです。

```
qct history
```

このコマンドは、デフォルトでは、一時停止中または進行中のジョブに加えて、最新の変換ジョブ 10 件を表示します。

**--limit** フラグで、表示するジョブ履歴エントリの数を指定することもできます。例えば、20 件のジョブを表示するには、以下のコマンドを実行します。

```
qct history --limit 20
```

# Java 変換に関する問題のトラブルシューティング
<a name="troubleshooting-code-transformation"></a>

以下の情報は、Amazon Q Developer を使用して Java アプリケーションを変換する際の一般的な問題のトラブルシューティングに役立ちます。

**Topics**
+ [

## Amazon Q がプロジェクトをアップロードできないのはなぜですか?
](#project-upload-fail)
+ [

## Maven コマンドが失敗するのはなぜですか?
](#maven-commands-failing)
+ [

## Maven を `PATH` に追加するにはどうすればよいですか?
](#add-maven-to-path)
+ [

## Amazon Q がコードをビルドできないのはなぜですか?
](#build-fail)
+ [

## 55 分経過後に変換が失敗したのはなぜですか?
](#build-time-limit)
+ [

## 変換されたコードをダウンロードできないのはなぜですか?
](#download-code-fail)
+ [

## コード変換ログにアクセスするにはどうすればよいですか?
](#logs)
+ [

## 変換ジョブ ID を見つけるにはどうすればよいですか?
](#job-id)

## Amazon Q がプロジェクトをアップロードできないのはなぜですか?
<a name="project-upload-fail"></a>

プロジェクトのアップロードに失敗した場合、次の問題のいずれかが原因である可能性があります。Amazon Q で表示されるエラーに対応するトピックを参照してください。

**Topics**
+ [

### プロジェクトサイズを縮小する
](#reduce-project-size)
+ [

### IDE でプロキシを設定する
](#configure-proxy)
+ [

### Amazon S3 へのアクセスを許可する
](#allowlist-s3-bucket)

### プロジェクトサイズを縮小する
<a name="reduce-project-size"></a>

コードを変換するために、Amazon Q はソースコード、プロジェクトの依存関係、ビルドログを含むプロジェクトアーティファクトを生成します。変換ジョブのプロジェクトアーティファクトサイズの上限は 2 GB です。プロジェクトアーティファクトのサイズに関連するエラーが発生した場合は、プロジェクトのサイズを小さくするか、より小さなプロジェクトを変換する必要があります。プロジェクトアーティファクトファイルのサイズは、コード変換ログで確認できます。詳細については、[コード変換ログにアクセスするにはどうすればよいですか?](#logs)を参照してください。

### IDE でプロキシを設定する
<a name="configure-proxy"></a>

コードを変換するために、Amazon Q はプロジェクトアーティファクトをサービス所有の Amazon S3 バケットにアップロードします。アップロードプロセスの一部では、SSL 証明書または TLS 証明書を使用して Amazon S3 と IDE 間の通信を確立します。プロキシサーバーを使用している場合、プロキシサーバーで使用される SSL 証明書または TLS 証明書は信頼されている必要があります。信頼されていない場合、Amazon Q はプロジェクトをアップロードできません。

プロキシまたは証明書に関連するエラーが発生した場合は、証明書を信頼するか、他のプロキシ設定を更新するように IDE またはオペレーティングシステムを設定する必要があります。

**注記**  
また、組織のプロキシサーバーまたはファイアウォールの後ろにいる場合、証明書とは無関係の問題が発生する可能性があります。次の手順で証明書を設定しても問題が解決しない場合は、ネットワーク管理者に連絡して、IDE から Amazon S3 との通信が許可されていることを確認してください。詳細については、「[Amazon S3 へのアクセスを許可する](#allowlist-s3-bucket)」を参照してください。

#### JetBrains の証明書を設定する
<a name="configure-proxy-JB"></a>

プロキシサーバーで使用される SSL 証明書または TLS 証明書を信頼するように JetBrains IDE の Java ランタイム環境 (JRE) を設定するには、SSL 証明書または TLS 証明書を JRE 内の `cacerts` ファイルにインポートする必要があります。`cacerts` ファイルは、HTTPS や SSL などのセキュアな接続に称される信頼されたルート証明書を含むファイルであり、JRE のセキュリティ設定の一部です。証明書をインポートする手順は次のとおりです。

**注記**  
`cacerts` ファイルを変更する前にバックアップを作成することをお勧めします。ミスがあると、セキュアな接続に問題が発生する可能性があるためです。

1. JRE 内の `cacerts` ファイルへのパスを特定します。JetBrains IDE に同梱されている内部 JRE 内の `cacerts` ファイルのパスは、オペレーティングシステムと使用している JetBrains IDE のバージョンによって異なります。

   以下は、一般的なオペレーティングシステムの `cacerts` ファイルへのパスの例です。オペレーティングシステムを選択すると、例が表示されます。
**注記**  
 `<JetBrains Installation Folder>` は、JetBrains 製品がインストールされているディレクトリを指します。このディレクトリは通常、インストールプロセス中に選択されます。  
`jbr` フォルダは、JetBrains IDE にバンドルされた JRE を表します。これは、JetBrains IDE での使用に合わせてカスタマイズされた JRE の特定のバージョンです。

------
#### [ Windows ]

   Windows にインストールされている JetBrains IDE の `cacerts` ファイルパスは次のとおりです。

   ```
   <JetBrains Installation Folder>\jbr\bin\cacerts
   ```

   例えば、Windows に JetBrains IDE をデフォルトの場所にインストールした場合、パスは次のようになります。

   ```
   C:\Program Files\JetBrains\jbr\bin\cacerts
   ```

------
#### [ macOS ]

   macOS にインストールされている JetBrains IDE の `cacerts` ファイルパスは次のとおりです。

   ```
   /Applications/JetBrains Toolbox/<version>/JetBrains Toolbox.app/Contents/jbr/Contents/Home/lib/security/cacerts
   ```

   例えば、macOS に JetBrains IDE をデフォルトの場所にインストールした場合、パスは次のようになります。

   ```
   /Applications/JetBrains Toolbox/2022.3.4/JetBrains Toolbox.app/Contents/jbr/Contents/Home/lib/security/cacerts
   ```

------
#### [ Linux ]

   Linux にインストールされている JetBrains IDE の `cacerts` ファイルパスは次のとおりです。

   ```
   /opt/jetbrains/jbr/lib/security/cacerts
   ```

------

1. `cacerts` ファイルにインポートする必要がある証明書を特定します。証明書ファイルの拡張子は通常 `.cer`、`.crt`、または `.der` です。追加すべき証明書がわからない場合は、ネットワーク管理者にお問い合わせください。

1. 証明書を `cacerts` キーストアにインポートします。これは Java の `keytool` コマンドで行うことができます。

   1. コマンドプロンプトを開き、次のコマンドを使用します。

      ```
      keytool -import -alias <alias> -file <certificate_file> -keystore <path_to_cacerts>
      ```

   1. `<alias>` については、インポートする証明書の名前を追加しておけば、後で参照できます。このオプションはオプションです。

   1. `<certificate_file>` には、インポートする証明書へのパスを指定します。これは、証明書を含む `.cer`、`.crt`、または `.der` ファイルへのパスを指定してください。

   1. `<path_to_cacerts>` には、ステップ 1 で保存した `cacerts` キーストアファイルへのパスを指定します。これは、証明書をインポートするファイルです。

   例えば、Windows 上にある IntelliJ IDEA のバンドル JRE の `cacerts` キーストアに `my_certificate.cer` という名前の証明書をインポートし、証明書に `myalias` というエイリアスを付与する場合、 コマンドは次のようになります。

   ```
   keytool -import -alias myalias -file my_certificate.cer -keystore "C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.2\jbr\bin\cacerts"
   ```

1. インポートプロセス中に、キーストアパスワードの入力を求められます。`cacerts` キーストアのデフォルトのパスワードは `changeit` です。

1. コマンドを実行すると、証明書を信頼するように求められます。証明書が信頼できることを確認してインポートを完了するには、`yes` と入力します。

1. JRE に加えて、IDE 自体に証明書を追加する必要がある場合もあります。詳細については、JetBrains ドキュメントの「[Server Certificates](https://www.jetbrains.com/help/idea/settings-tools-server-certificates.html)」を参照してください。

#### Visual Studio Code の証明書を設定する
<a name="configure-proxy-VSC"></a>

プロキシサーバーで使用される SSL 証明書または TLS 証明書を信頼するように Visual Studio Code を設定するには、オペレーティングシステムに次のプロキシ設定が設定されていることを確認してください。

##### macOS で Visual Studio Code の証明書を設定する
<a name="certs-mac"></a>

macOS 上の Visual Studio Code で次のプロキシ設定を行います。

##### macOS キーチェーンに証明書を追加する
<a name="w2aac11c16c17c13c23b7b9c11b5b1b5"></a>

まだ追加していない場合は、プロキシサーバーが使用する証明書を macOS キーチェーンに追加する必要があります。キーチェーンに証明書を追加する方法については、「Keychain Access User Guide」の「[Add certificates to a keychain using Keychain Access on Mac](https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac)」を参照してください。

##### Mac CA VSCode 拡張機能をインストールする
<a name="w2aac11c16c17c13c23b7b9c11b5b1b7"></a>

[Mac CA VSCode 拡張機能](https://marketplace.visualstudio.com/items?itemName=linhmtran168.mac-ca-vscode)を使用すると、Amazon Q は Mac の Keychain Access に追加した証明書にアクセスできます。

拡張機能をインストールするには:

1. VS Code 拡張機能ペインで `mac-ca-vscode` を検索し、**[インストール]** を選択します。

1. VS Code を再起動します。

##### macOS で VS Code のプロキシ設定を更新する
<a name="w2aac11c16c17c13c23b7b9c11b5b1b9"></a>

次の設定を更新して、VS Code がプロキシに正しく設定されていることを確認します。

1. VS Code で設定を開きます。

1. 検索バーに「`proxy`」と入力します。

1. **[Http: Proxy]** フィールドに、プロキシ URL を追加します。

1. **[Http: Proxy Strict SSL]** のチェックボックスをオフにします。

1. **[Http: Proxy Support]** ドロップダウンリストで、 **[on]** を選択します。

1. 設定検索バーに「`http.experimental.systemCertificatesV2`」と入力します。**[Http › Experimental: System Certificates V2]** を選択します。

##### Windows で Visual Studio Code の証明書を設定する
<a name="certs-windows"></a>

Windows 上の Visual Studio Code で次のプロキシ設定を行います。

##### Windows で信頼されたルート証明書として証明書を追加する
<a name="w2aac11c16c17c13c23b7b9c11b5b3b5"></a>

まだ追加していない使用していない場合は、プロキシサーバーが使用する証明書を Windows の信頼されたルート証明機関のストアに追加する必要があります。証明書を追加するには、次の手順を実行します。

1. 検索ツールまたは Run コマンドウィンドウを開きます。

1. 次のコマンドを入力して、Certificate Manager ツールを開きます。

   ```
   certmgr.msc
   ```

1. **[信頼されたルート証明機関]** ストアを選択します。

1. **[証明書]** を右クリックし、**[すべてのタスク]**、**[インポート]** の順に選択します。

1. 指定された手順に従って、プロキシ証明書をインポートします。

1. 証明書をインポートしたら、証明書が追加されていることを確認します。

   **[信頼されたルート証明機関]** ストアで、**[証明書]** をダブルクリックします。追加した証明書を右クリックし、**[プロパティ]** を選択します。**[証明書の目的]** で、**[この証明書の目的をすべて有効にする]** オプションが選択されていることを確認します。

##### Win-CA VSCode 拡張機能をインストールする
<a name="w2aac11c16c17c13c23b7b9c11b5b3b7"></a>

[Win-CA VSCode 拡張機能](https://marketplace.visualstudio.com/items?itemName=ukoloff.win-ca)により、Amazon Q は Windows で信頼されたルート証明書に追加した証明書にアクセスできます。

拡張機能をインストールするには:

1. VS Code 設定ペインで「`win-ca `」を検索します。

1. **[Inject]** ドロップダウンリストで、**[append]** を選択します。

##### Windows の VS Code でプロキシ設定を更新する
<a name="w2aac11c16c17c13c23b7b9c11b5b3b9"></a>

次の設定を更新して、VS Code がプロキシに正しく設定されていることを確認します。

1. VS Code で設定を開きます。

1. 検索バーに「`proxy`」と入力します。

1. **[Http: Proxy]** フィールドに、プロキシ URL を追加します。

1. **[Http: Proxy Strict SSL]** のチェックボックスをオフにします。

1. **[Http: Proxy Support]** ドロップダウンリストで、 **[on]** を選択します。

1. 設定検索バーに「`http.experimental.systemCertificatesV2`」と入力します。**[Http › Experimental: System Certificates V2]** を選択します。

1. VS Code を再起動します。

### Amazon S3 へのアクセスを許可する
<a name="allowlist-s3-bucket"></a>

変換の間、Amazon Q はコードをサービス所有の Amazon S3 バケットにアップロードします。ネットワークまたは組織が Amazon S3 へのアクセスを設定していない場合、Amazon Q はプロジェクトをアップロードできません。

Amazon Q がプロジェクトをアップロードできるようにするには、プロキシ設定や Data Lost Prevention (DLP) ポリシーなどのネットワークコンポーネントが Amazon S3 へのアクセスを許可するように設定されていることを確認します。また、Amazon Q がプロジェクトをアップロードする Amazon S3 バケットを許可リストに登録する必要が生じる場合もあります。詳細については、「[Amazon S3 バケット URL および ARN の許可リストへの追加](firewall.md#data-perimeters)」を参照してください。

大規模なプロジェクトを変換する場合、DLP ポリシーなどのネットワークコンポーネントが Amazon S3 バケットを許可リストに登録するように設定されていないと、遅延が発生し、アップロードが成功しない可能性があります。バケットを許可リストに登録しない場合、Amazon Q がバケットをアップロードできるように、より小さなプロジェクトを変換する必要がある場合があります。

## Maven コマンドが失敗するのはなぜですか?
<a name="maven-commands-failing"></a>

以下は、JetBrains IDE および Visual Studio Code IDE で発生する可能性のある Maven の設定の問題です。問題に対処しても Maven エラーが表示される場合は、プロジェクトに問題がある可能性があります。エラーログの情報を使用して、プロジェクトに関する問題に対処し、プロジェクトをもう一度変換してみてください。

### JetBrains で Maven の設定を更新する
<a name="jetbrains"></a>

JetBrains での変換が Maven コマンドの問題が原因で失敗すると、エラーログが **[Run]** タブに表示されます。ログの情報を使用して問題に対処します。以下は、対処する必要がある問題の例です。
+ Maven のホームパスが **[Bundled]** に設定されていることを確認します。**[Settings]** ダイアログボックスで、**[Build, Execution, Deployment]** セクションを展開します。**[Build Tools]** セクションを展開し、**[Maven]** を展開します。**[Maven home path]** ドロップダウンリストで、**[Bundled]** を選択します。
+ Java ランタイム環境 (JRE) でプロジェクト JDK が使用されていることを確認します。**[Settings]** ダイアログボックスで、**[Build, Execution, Deployment]** セクションを展開します。**[Maven]** を展開して **[Runner]** を選択します。**[JRE]** ドロップダウンリストで、**[Use Project JDK]** を選択します。
+ 「Maven」が有効になっていることを確認します。**[Settings]** に移動し、**[Plugins]** を選択します。「Maven」を検索して Maven プラグインを選択します。**[Enable]** ボタンが表示された場合は、選択して Maven を有効にします。

### Visual Studio Code で Maven の設定を更新する
<a name="vscode"></a>

VS Code での変換が Maven コマンドの問題が原因で失敗すると、エラーログを含むテキストファイルが新しいタブで開きます。ログの情報を使用して問題に対処します。

次のオプションのいずれかが設定されていることを確認します。
+ プロジェクトのプロジェクトルートフォルダに Maven ラッパーが含まれている
+ Amazon Q でサポートされている Maven のバージョンが `PATH` で利用可能になっている

詳細については、[Maven を `PATH` に追加するにはどうすればよいですか?](#add-maven-to-path)を参照してください。

## Maven を `PATH` に追加するにはどうすればよいですか?
<a name="add-maven-to-path"></a>

Maven ラッパーを使用せずに VS Code でコードを変換するには、Maven をインストールして `PATH` 変数に追加する必要があります。

Maven が既に正しくインストールされているかどうかを確認するには、Visual Studio Code の外部にある新しい OS ターミナルで `mvn -v` を実行します。Maven のバージョンが出力に表示されるはずです。

Visual Studio Code ターミナルで出力が得られるのに OS ターミナルで出力が得られない場合、またはコマンドが見つからない場合は、Maven を `PATH` に追加する必要があります。

 Maven を `PATH` に追加するには、ご利用のマシン向けの手順を実行します。

------
#### [ macOS ]

Maven を macOS `PATH` に追加するには、次の手順を実行します。

1. Maven インストールディレクトリ、または Maven をインストールしたフォルダを見つけ、そのフォルダへのパスを保存します。

1. 任意のエディタでシェルの設定ファイルを開きます。最近の macOS バージョンでは、デフォルトのシェルは `zsh` で、デフォルトの設定ファイルは `~/.zshrc` にあります。

   設定ファイルに次の行を追加します。`M2_HOME` の値は、ステップ 1 で保存したパスに設定します。

   ```
   export M2_HOME="your Maven installation directory"
   export PATH="${M2_HOME}/bin:${PATH}"
   ```

   これらのコマンドにより、`mvn` コマンドがすべてのターミナルで使用できるようになります。

1. すべての OS ターミナルウィンドウを閉じて、すべての Visual Studio Code インスタンスを終了します。

1. Maven が `PATH` に追加されたことを確認するには、新しい OS ターミナルを開き、次のコマンドを実行します。

   ```
   mvn -v
   ```

   Maven のバージョンが出力に表示されるはずです。

1. Maven 出力が表示されたら、Visual Studio Code を再起動します。マシンを再起動する必要がある場合もあります。Visual Studio Code ターミナルを開き、次のコマンドを実行します。

   ```
   mvn -v
   ```

   出力は、ステップ 4 の出力と同じであるはずです。Visual Studio Code 出力が異なる場合は、以下を試して設定が正しいことを確認します。
   + Visual Studio Code で `PATH` 変数を確認します。IDE 拡張機能によって、ローカルの `PATH` 変数とは異なる`PATH`ように が変更されている可能性があります。拡張機能をアンインストールして、`PATH` から削除します。
   + Visual Studio Code でデフォルトのシェルを確認します。`zsh` 以外に設定している場合は、シェルに対して上記のステップを繰り返します。

------
#### [ Server  ]

Maven を Windows `PATH` に追加するには、次の手順を実行します。

1. Maven インストールディレクトリ、または Maven をインストールしたフォルダを見つけ、そのフォルダへのパスを保存します。

1. [環境変数] ウィンドウを開きます。

   1. Windows キーを押して検索バーを開きます。

   1. 「`Edit environment variables for your account`」と入力して選択します。

1. **[環境変数]** ウィンドウで、Path 変数を探します。Path 変数が既にある場合は、**[編集...]** を選択して更新します。Path 変数がない場合は、**[新規...]** を選択して追加します。

1. 表示される **[環境変数名の編集]** ウィンドウで、既存のパスをダブルクリックして編集するか、**[新規]** を選択して新しいパスエントリを追加します。

   既存の Maven パスエントリを、ステップ 1 で保存したパスに置き換えるか、パスを新しいエントリとして追加します。パスの最後に、次の例のように、サフィックスとして `\bin` を追加します。

   ```
   C:\Users\yourusername\Downloads\apache-maven-3.9.6-bin\apache-maven-3.9.6\bin
   ```

1. **[OK]** を選択してパスエントリを保存し、**[環境変数]** ウィンドウで再度 **[OK]** を選択します。

1. 新しいコマンドプロンプトを開き、次のコマンドを入力します。

   ```
   mvn -v
   ```

   Maven のバージョンが出力に表示されるはずです。

------

## Amazon Q がコードをビルドできないのはなぜですか?
<a name="build-fail"></a>

Amazon Q がコードをビルドする際に変換が失敗する場合は、Amazon Q がコードをビルドする環境に合わせてプロジェクトが正しく設定されていない可能性があります。ビルド設定またはコード実装を更新する必要があるかもしれません。

Amazon Q が提供するビルドログ出力を確認して、プロジェクトに加えられる変更があるかどうかを判断します。以下は、Amazon Q によるコードのビルドを妨げる可能性のある一般的な問題です。

### pom.xml の絶対パスを削除する
<a name="remove-absolute-path"></a>

pom.xml ファイルに絶対パスがある場合、Amazon Q は関連するファイルを見つけることができず、その結果、コードをビルドできない可能性があります。

以下は、`pom.xml` ファイルに含まれている可能性のある絶対パスの例です。

```
<toolspath>
    <path>/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/lib/tools.jar</path>
</toolspath>
```

絶対パスを使用する代わりに、ポインタを使用して相対パスを作成できます。以下は、前の絶対パスを相対パスに置き換える方法の例です。

```
<toolspath>
    <path>${java.home}/../lib/tools.jar</path>
</toolspath>
```

### ユニットテストのローカルデータベースまたは外部データベースを削除する
<a name="remove-external-databases"></a>

Amazon Q は、コードをビルドする際、プロジェクト内のすべてのユニットテストを実行します。ユニットテストがローカルデータベースまたは外部データベースを呼び出すと、Amazon Q はデータベースにアクセスできず、ビルドが失敗します。ビルドが失敗しないようにするには、変換を送信する前に、ユニットテストからデータベース呼び出しを削除するか、ユニットテストを削除する必要があります。

## 55 分経過後に変換が失敗したのはなぜですか?
<a name="build-time-limit"></a>

コード変換ジョブが 55 分経過後に失敗した場合、コードのビルド時間がビルドの時間制限を超えている可能性があります。現在、コードのビルドには 55 分の制限があります。

ローカルビルドに 55 分以上かかる場合、コードを変換するには、プロジェクトのビルド時間を短縮します。ローカルビルドがコード変換を使用したビルドよりも速い場合は、環境が変わると障害が発生したり、かかる時間が長くなったりする可能性のあるタスクがないかプロジェクトをチェックします。長時間の実行が必要なテストケースを無効にすることを検討してください。また、セキュアな IDE 環境やインターネットから利用できないリソースにアクセスする試みに、タイムアウトを使用することも検討してください。

## 変換されたコードをダウンロードできないのはなぜですか?
<a name="download-code-fail"></a>

変換の完了後にコードをダウンロードできない場合は、次のいずれかの問題が原因である可能性があります。Amazon Q で表示されるエラーに対応するトピックを参照してください。

**Topics**
+ [

### プロジェクトサイズを縮小する
](#reduce-project-size-output)
+ [

### 30 日以内にコード差分をダウンロードする
](#download-30-hrs)
+ [

### IDE でプロキシを設定する
](#configure-proxy-download)
+ [

### JetBrains プロキシ設定のワイルドカード文字を削除する
](#remove-wildcard)

### プロジェクトサイズを縮小する
<a name="reduce-project-size-output"></a>

変換が完了すると、Amazon Q は、アップグレードされたコードを含む 差分と、変更に関する情報が記載された変換の概要を含む出力アーティファクトを生成します。IDE で出力アーティファクトをダウンロードするには、出力アーティファクトが 1 GB 以下である必要があります。

出力アーティファクトが制限を超えると、アップグレードされたコードまたは変換の概要をダウンロードできなくなります。出力アーティファクトが大きくならないように、小さなプロジェクトを変換してみてください。問題が解決しない場合は、 にお問い合わせください サポート。Amazon Q サポート へのお問い合わせについては、「」を参照してください[Amazon Q Developer を使用して サポートとチャットする](support-chat.md)。

### 30 日以内にコード差分をダウンロードする
<a name="download-30-hrs"></a>

アップグレードされたコードを含むコード差分ファイルは、変換完了後 30 日間のみ入手できます。変換が完了してから 30 日を超えた場合は、変換を再スタートして差分ファイルをダウンロードしてください。

### IDE でプロキシを設定する
<a name="configure-proxy-download"></a>

Amazon Q は、サービス所有の Amazon S3 バケットからアップグレードされたコードをダウンロードします。ダウンロードプロセスの一部では、SSL 証明書または TLS 証明書を使用して Amazon S3 と IDE 間の通信を確立します。プロキシサーバーを使用している場合、プロキシサーバーで使用される SSL 証明書または TLS 証明書は信頼されている必要があります。信頼されていない場合、Amazon Q はプロジェクトをアップロードできません。

コードをダウンロードするには、証明書を信頼するように IDE を設定したり、他のプロキシ設定を更新したりする必要がある場合があります。プロキシ設定の更新の詳細については、「[IDE でプロキシを設定する](#configure-proxy)」を参照してください。

### JetBrains プロキシ設定のワイルドカード文字を削除する
<a name="remove-wildcard"></a>

JetBrains IDE でプロキシ設定を行っている場合、アップグレードされたコードのダウンロード時に次のエラーが表示されることがあります。

```
software.amazon.awssdk.core.exception.SdkClientException: 
Unable to execute HTTP request: Dangling meta character '*' near index 0
```

これは、IDE の **[No proxy for]** フィールドにワイルドカード文字 (\$1) が存在することが原因で発生する可能性があります。Amazon Q で使用される Java SDK は、このフィールドのワイルドカードエントリをサポートしていません。

コードをダウンロードするには、**[No proxy for]** フィールドからワイルドカードを削除し、IDE を再起動します。プロキシをバイパスするホストを指定する必要がある場合は、ワイルドカードの代わりに正規表現を使用します。JetBrains IDE のプロキシ設定を更新するには、JetBrains ドキュメントの「[HTTP Proxy](https://www.jetbrains.com/help/idea/settings-http-proxy.html)」を参照してください。

## コード変換ログにアクセスするにはどうすればよいですか?
<a name="logs"></a>

### JetBrains でログにアクセスする
<a name="jetbrains-logs"></a>

JetBrains ログファイルにアクセスする方法については、JetBrains ドキュメントの「[Locating IDE log files](https://intellij-support.jetbrains.com/hc/en-us/articles/207241085-Locating-IDE-log-files)」を参照してください。

JetBrains で Amazon Q によって発行されたログを検索するには、IDE ログで次の文字列を検索します。

```
software.aws.toolkits.jetbrains.services.codemodernizer
```

コード変換ログは、上記の文字列で始まります。Maven によって生成されたログは **[Run]** タブに表示され、ログエントリの前後に上記の文字列があります。

### Visual Studio Code でログにアクセスする
<a name="vsc-logs"></a>

VS Code で Amazon Q によって出力されたログを検索するには、次の手順を実行します。

1. 上部のナビゲーションバーで **[ビュー]** を選択し、**[コマンドパレット]** を選択します。

1. 表示されるコマンドパレットで「`Amazon Q: View Logs`」を検索します。

1. ログが IDE で開きます。ログファイルで `CodeTransformation` を検索するには、`CMD + F` または `Control + F` を使用します。

VS Code のコード変換のログには、`CodeTransformation:` というプレフィックスが付いています。以下は、Maven コピー依存関係エラーに対して VS Code で生成されたログの例です。

```
2024-02-12 11:29:16 [ERROR]: CodeTransformation: Error in running Maven copy-dependencies command mvn = /bin/sh: mvn: command not found
```

## 変換ジョブ ID を見つけるにはどうすればよいですか?
<a name="job-id"></a>

### JetBrains でジョブ ID を見つける
<a name="jetbrains"></a>

JetBrains で変換ジョブ ID を見つけるには、**[変換ハブ]** の **[変換の詳細]** タブに移動し、**[ジョブステータスの表示]** (時計) アイコンをクリックします。

### Visual Studio Code でジョブ ID を見つける
<a name="vs-code"></a>

VS Code で変換ジョブ ID を検索するには、**[変換ハブ]** に移動し、**[ジョブステータスの表示]** (時計) アイコンをクリックします。