JShell:5. 외부 코드

이 문서는 Java9의 오라클 공식 문서 중 JShell 사용자 가이드의 한글화 문서입니다. 원문 정보는 다음과 같습니다.

JShell 사용자 가이드의 한글화 문서는 다음과 같이 구성됩니다.


JShell 사용자 가이드: 5. 외부 코드


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
김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 빅데이터와 Machine Learning을 중점에 두고 있습니다.
E-mail: taewanme@gmail.com