

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

# JVM システムプロパティを使用して AWS SDK for Java と をグローバルに設定する AWS SDK for Kotlin
<a name="jvm-system-properties"></a>

[JVM システムプロパティ](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html)は、 や などの JVM で実行される SDKs の設定オプション AWS SDK for Java と認証情報を指定する別の方法を提供します AWS SDK for Kotlin。SDK がサポートする JVM システムプロパティのリストについては、「[Settings reference](settings-reference.md#JVMSettings)」を参照してください。

**オプションの優先順位**
+ JVM システムプロパティを使用して設定を指定した場合、環境変数で見つかった値や共有 AWS `config` および `credentials` ファイル内のプロファイルからロードされた値は上書きされます。
+ 環境変数を使用して設定を指定した場合、共有 AWS `config` および `credentials` ファイル内のプロファイルからロードされた値は上書きされます。

## JVM システムプロパティを設定する方法
<a name="jvm-sys-props-set"></a>

さまざまな方法で JVM システムプロパティを設定できます。

### コマンドラインでの設定
<a name="jvm-sys-props-set-cl"></a>

`-D` スイッチを使用して `java` コマンドを呼び出すときに、コマンドラインに JVM システムプロパティを設定します。次のコマンドは、コード内の値を明示的に上書きしない限り、すべてのサービスクライアントに対して AWS リージョン をグローバルに設定します。

```
java -Daws.region=us-east-1 -jar <your_application.jar> <other_arguments>
```

複数の JVM システムプロパティを設定する必要がある場合は、`-D` スイッチを複数回指定します。

### 環境変数の使用
<a name="jvm-sys-props-set-evar"></a>

アプリケーションを実行するために JVM を呼び出すコマンドラインにアクセスできない場合は、`JAVA_TOOL_OPTIONS` 環境変数を使用してコマンドラインオプションを設定できます。このアプローチは、Java ランタイムで AWS Lambda 関数を実行したり、埋め込み JVM でコードを実行したりする状況で役立ちます。

次の例では、コード内の値を明示的に上書きしない限り、すべてのサービスクライアントに対して を AWS リージョン グローバルに設定します。

------
#### [ Linux, macOS, or Unix ]

```
$ export JAVA_TOOL_OPTIONS={{"-Daws.region=us-east-1"}}
```

環境変数を設定すると使用する値が変更され、その値はシェルセッションが終了するか、または変数に別の値が設定されるまで有効です。変数をシェルのスタートアップスクリプトで設定することで、変数をこれからのセッションで永続的にすることができます。

------
#### [ Windows Command Prompt ]

```
C:\> setx JAVA_TOOL_OPTIONS {{-Daws.region=us-east-1}}
```

`[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` を使用して環境変数を設定すると、現在のコマンドプロンプトセッションの終了時まで、または変数を別の値に設定するまで、使用する値が変更されます。[https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx) を使用して環境変数を設定すると、現在のコマンドプロンプトセッションおよびコマンド実行後に作成するすべてのコマンドプロンプトセッションで使用する値が変更されます。これは、コマンド実行時にすでに実行されている他のコマンドシェルには影響を及ぼし***ません***。

------

### 実行時
<a name="jvm-sys-props-set-runtime"></a>

次の例に示すように、`System.setProperty` メソッドを使用して実行時にコードで JVM システムプロパティを設定することもできます。

```
System.setProperty("aws.region", "us-east-1");
```

**重要**  
SDK サービスクライアントを初期化する*前に* JVM システムプロパティを設定してください。そうしないと、サービスクライアントが他の値を使用することがあります。