

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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)은 AWS SDK for Java 및와 같이 JVM에서 실행되는 SDKs에 대한 구성 옵션 및 자격 증명을 지정하는 또 다른 방법을 제공합니다 AWS SDK for Kotlin. SDK에서 지원하는 JVM 시스템 속성 목록은 [설정 참조](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 시스템 속성을 모두 설정해야 합니다. 그러지 않으면 서비스 클라이언트가 다른 값을 사용할 수 있습니다.