Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9 JShell에서 시스템 속성(System Properties)을 조회하는 방법

JShellREPL(Read-Evaluate-Print-Loop) 도구로, main() 메서드 없이도 간단한 문장을 입력해 즉시 실행하고 그 결과를 화면으로 확인할 수 있습니다. 명령 프롬프트에서 "jshell"이라고 입력하기만 하면 곧바로 시작할 수 있습니다.

JShell에서 시스템 속성을 확인하려면 System.getProperty()System.getProperties() 메서드를 사용하면 됩니다.

아래 첫 번째 예제에서는 System 클래스의 정적(static) 메서드인 getProperty()를 활용해 JShell에서 특정 시스템 속성 값을 출력하는 방법을 보여줍니다.

예제 1

jshell> System.getProperty("java.class.path")
$1 ==> "C:\\Program Files\\Java\\jdk-9.0.4\\lib;C:\\json-jars\\json.jar;.;C:\\json-jars\\json-simple.jar;.;C:\\json-jars\\gson.jar;.;C:\\json-jars\\commons-io.jar;.;C:\\json-jars\\jackson-core.jar;.;C:\\json-jars\\jackson-databind.jar;.;C:\\json-jars\\jackson-annotations.jar;.;C:\\json jars\\flexjson.jar;.;C:\\json-jars\\jackson-dataformat-xml.jar;.;C:\\json-jars\\stax2-api.jar;.;C:\\json-jars\\jackson-dataformat-csv.jar;.;C:\\json-jars\\javax.json.jar;.;C:\\json jars\\javax.json-api.jar;.;C:\\json-jars\\jackson-module-jsonSchema.jar;.;C:\\json-jars\\json-lib.jar;.;C:\\json-jars\\commons-lang.jar;.;C:\\json-jars\\commons-logging.jar;.;"


두 번째 예제에서는 Hashtable을 확장한 "properties" 객체를 사용합니다. System.getProperties().forEach((k, v) 구문을 활용하면 모든 시스템 속성을 키/값(key/value) 쌍 형태로 JShell 화면에 나열할 수 있습니다.

예제 2

jshell> System.getProperties().forEach((k, v) -> { System.out.printf("%s: %s\n", k, v); })
sun.desktop: windows
awt.toolkit: sun.awt.windows.WToolkit
java.specification.version: 9
file.encoding.pkg: sun.io
sun.cpu.isalist: amd64
sun.jnu.encoding: Cp1252
java.class.path: C:\Program Files\Java\jdk-9.0.4\lib;C:\json jars\json.jar;.;C:\json jars\json-simple.jar;.;C:\json jars\gson.jar;.;C:\json jars\commons-io.jar;.;C:\json jars\jackson-core.jar;.;C:\json jars\jackson-databind.jar;.;C:\json jars\jackson-annotations.jar;.;C:\json jars\flexjson.jar;.;C:\json jars\jackson-dataformat-xml.jar;.;C:\json jars\stax2-api.jar;.;C:\json jars\jackson-dataformat-csv.jar;.;C:\json jars\javax.json.jar;.;C:\json jars\javax.json-api.jar;.;C:\json jars\jackson-module-jsonSchema.jar;.;C:\json jars\json-lib.jar;.;C:\json jars\commons-lang.jar;.;C:\json jars\commons-logging.jar;.;
java.vm.vendor: Oracle Corporation
sun.arch.data.model: 64
user.variant:
java.vendor.url: https://java.oracle.com/
user.timezone:
os.name: Windows 8.1
java.vm.specification.version: 9
sun.java.launcher: SUN_STANDARD
user.country: US
sun.boot.library.path: C:\Program Files\Java\jdk-9.0.4\bin
sun.java.command: jdk.jshell.execution.RemoteExecutionControl 54984
jdk.debug: release
sun.cpu.endian: little
user.home: C:\Users\User
user.language: en
java.specification.vendor: Oracle Corporation
java.home: C:\Program Files\Java\jdk-9.0.4
file.separator: \
java.vm.compressedOopsMode: 32-bit
line.separator:
java.vm.specification.vendor: Oracle Corporation
java.specification.name: Java Platform API Specification
java.awt.graphicsenv: sun.awt.Win32GraphicsEnvironment
user.script:
sun.management.compiler: HotSpot 64-Bit Tiered Compilers
java.runtime.version: 9.0.4+11
user.name: User
path.separator: ;
os.version: 6.3
java.runtime.name: Java(TM) SE Runtime Environment
file.encoding: Cp1252
java.vm.name: Java HotSpot(TM) 64-Bit Server VM
java.vendor.url.bug: https://bugreport.java.com/bugreport/
java.io.tmpdir: C:\Users\User\AppData\Local\Temp\
java.version: 9.0.4
user.dir: C:\Users\User\Desktop\Java 9 QNA
os.arch: amd64
java.vm.specification.name: Java Virtual Machine Specification
java.awt.printerjob: sun.awt.windows.WPrinterJob
sun.os.patch.level:
java.library.path: C:\Program Files\Java\jdk-9.0.4\bin;C:\Windows\Sun\Java\bin;C
:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk-9.0.4\bin;.;;.
java.vm.info: mixed mode
java.vendor: Oracle Corporation
java.vm.version: 9.0.4+11
sun.io.unicode.encoding: UnicodeLittle
java.class.version: 53.0