JShell 사용자 가이드: 5. 외부 코드
이 문서는 Java9의 오라클 공식 문서 중 JShell 사용자 가이드의 한글화 문서입니다. 원문 정보는 다음과 같습니다.
- 원문: https://docs.oracle.com/javase/9/jshell/external-code.htm
- 제목: Java Platform, Standard Edition Java Shell User’s Guide: 5 External Code
- 문서번호: E87478-01
- 배포: 2017년 09월
- 라이센스: 원본 문서 라이센스를 준수합니다.
JShell 세션은 클래스 패스를 이용하여 외부 클래스에 접근할 수 있습니다. 외부 모듈은 모듈 경로, 추가 모듈 설정 및 모듈 내보내기 설정을 통해 접근할 수 있습니다.
- 문서 구성
- 클래스 패스 설정
- 모듈 옵션 설정
클래스 경로 설정
JShell 세션에 클래스 패스를 설정하여 외부 코드에 접근할 수 있습니다.
커맨드 라인에서 클래스 패스는 다음 예제와 같이 설정할 수 있습니다.
% jshell --class-path myOwnClassPath
접근해야 하는 패키지를 포함하는 디렉터리 혹은 JAR 파일을 클래스 패스로 지정합니다. 코드는 클래스 파일로 컴파일되어 있어야 합니다. 이름이 없는 패키지로 표현되는 디폴트 패키지에 코드는 JShell에서는 접근할 수 없습니다. 클래스 패스를 설정한 상태라면, 이 패스에 포함된 패키지들은 세션에서 임포트 가능합니다.
jshell> import my.cool.code.*
다음 예제와 같이 JShell 세션 아래에서 /env 명령을 사용하여 클래스 패스를 설정할 수 있습니다.
jshell> /env --class-path myOwnClassPath
| Setting new options and restoring state.
/env 명령은 실행 상태를 재설정하고, 명령으로 입력 한 새로운 클래스 패스 혹은 환경 설정으로 현재 코드 스니펫을 모두 다시 로드합니다.
모듈 옵션 설정
JShell은 모듈을 지원합니다. 모듈 패스를 설정할 수 있고, 지정된 모듈 패스로부터 추가 모듈을 찾고, 모듈을 내보낼 수 있습니다.
다음 예제와 같이 모듈 옵션은 /env 명령이나 커맨드 라인이 옵션으로 제공됩니다.
% jshell --module-path myOwnModulePath --add-modules my.module
현재 환경 설정은 옵션 없이 /env 명령을 사용하여 확인할 수 있습니다. 다음은 클래스 패스가 설정된 상황에서, 클래스 패스 정보를 출력하는 /env 명령의 사용 예제입니다.
jshell> /env
| --add-modules my.module
| --module-path myOwnModulePath
| --class-path myOwnClassPath
옵션에 대한 자세한 내용을 보려면 다음 명령으로부터 확인할 수 있습니다.
jshell> /help context