여러 시스템 속성 설정 Java 명령 줄
-D 문을 여러 개 사용하는 것보다 명령 줄에서 Java 프로그램에 여러 시스템 속성을 지정하는 더 쉬운 방법이 있습니까?
이것을 피하려고 :
java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar
그 -D후에 인용 된 문자열과 인용 된 문자열을 사용하는 사람의 예를 본 적이 있다고 생각 했지만 다시는 찾을 수 없습니다.
대답은 아니오입니다. 누군가 다음과 같은 것을 설정 한 예를 보았을 것입니다.
-DArguments=a=1,b=2,c=3,d=4,e=cow
그런 다음 응용 프로그램은 Arguments속성 문자열의 값을 구문 분석 하여 개별 값을 가져옵니다. 당신의에서 main(가정 입력 형식을 보장) 당신은 키 값을 얻을 수 있습니다 :
String line = System.getProperty("Arguments");
if(line != null) {
String str[] = line.split(",");
for(int i=1;i<str.length;i++){
String arr[] = str[i].split("=");
System.out.println("Key = " + arr[0]);
System.out.println("Value = " + arr[1]);
}
}
또한,이 -D메인 클래스 또는 이전해야 jar자바 명령 줄에서 파일. 예 :java -DArguments=a=1,b=2,c=3,d=4,e=cow MainClass
속성을 인수로 전달하는 대신 .properties를 사용하여 저장할 수 있습니다.
이와 같은 것에 대해 언급 하는 문서 가 없습니다 .
다음은 인용문입니다.
-Dproperty = value 시스템 속성 값을 설정합니다. 값이 공백이 포함 된 문자열 인 경우 문자열을 큰 따옴표로 묶어야합니다.
java -Dfoo = "일부 문자열"SomeClass
JAVA_TOOL_OPTIONS환경 변수를 사용하여 옵션을 설정할 수 있습니다. 그것은 Rasbian과 함께 저에게 효과적이었습니다. 다음과 같이 말하는 환경 변수 및 시스템 속성 을 참조하십시오 .
많은 환경에서 필요한 명령 줄 옵션을 사용하여 응용 프로그램을 시작하기 위해 명령 줄에 쉽게 액세스 할 수 없습니다.
이는 임베디드 VM을 사용하는 애플리케이션 (즉, VM을 시작하기 위해 JNI (Java Native Interface) 호출 API를 사용함) 또는 시작이 스크립트에 깊이 중첩 된 애플리케이션에서 종종 발생합니다. 이러한 환경에서 JAVA_TOOL_OPTIONS 환경 변수는 명령 줄을 확장하는 데 유용 할 수 있습니다.
이 환경 변수가 설정되면 JNI_CreateJavaVM 함수 (JNI 호출 API에서), JNI_CreateJavaVM 함수는 JavaVMInitArgs 인수에 제공된 옵션에 환경 변수 값을 추가합니다.
그러나이 환경 변수 사용은 보안상의 이유로 비활성화 될 수 있습니다.
경우에 따라이 옵션은 보안상의 이유로 비활성화됩니다. 예를 들어, Oracle Solaris 운영 체제에서이 옵션은 유효 사용자 또는 그룹 ID가 실제 ID와 다를 때 비활성화됩니다.
명령 줄에서 지정하는 것과 JAVA_TOOL_OPTIONS환경 변수를 사용하는 것의 차이점을 보여주는이 예를 참조하십시오 .
필요한 속성을 시스템에 설정해야하는 경우 -D 옵션이 없지만 응용 프로그램을 부트 스트랩하는 동안 해당 속성이 필요한 경우 속성 파일을 통해 속성을로드하는 것이 가장 좋습니다. 단일 속성에 대한 빌드를 변경할 필요가 없습니다.
참고 URL : https://stackoverflow.com/questions/7351533/set-multiple-system-properties-java-command-line
'IT TIP' 카테고리의 다른 글
| Java로 대용량 파일 읽기 (0) | 2020.12.08 |
|---|---|
| 파이썬의 선은 파이썬의지도 원리를 20 개의 격언으로 나누지 만 19 개만 나열합니다. 20 번째는 무엇입니까? (0) | 2020.12.08 |
| Jinja2 : 루프 내부의 변수 값 변경 (0) | 2020.12.08 |
| Visual Studio TFS Git에서 변경 사항이 표시되지 않음 (0) | 2020.12.08 |
| 페이스 북 로그인 문제-canOpenURL : URL에 대한 실패 : "fbauth2 : ///"-오류 : "(null)" (0) | 2020.12.08 |
