728x90

안녕하세요. 공유민입니다.

이번 포스팅에서는 Java RMI 실행 및 테스트에 대해 알아보겠습니다.









Java RMI, Java Remote Method Invocation
(
자바 원격 함수 호출)





3. Java RMI 실행하기



3.1 Server - Class로 실행


커맨드

1
2
3
4
5
6
7
javac -<클래스 파일 생성 위치> <서버 자바> <인터페이스 자바>
 
Windows) start rmiregistry <포트번호>    
Unix) rmiregistry <포트번호> &
 
java -classpath <클래스 경로> -Djava.rmi.server.codebase=file:<스텁 클래스 위치>/ <서버 자바 클래스>
 
cs



Windows 실행 예제


1
2
3
4
5
javac -d H:\rmiSeminar\Server Server.java SampleI.java 
 
start rmiregistry
 
java -classpath . -Djava.rmi.server.codebase=file:H:\rmiSeminar\Server\ gym.dev.Server
cs



실행시, class로 실행하는 방법과 jar로 실행하는 방법이 나뉩니다

평소에 개발은 class로 하는게 편하지만 배포시에는 jar가 용이하기에 두 방법 모두 소개하겠습니다.

우선 서버 측에서 class로 실행하는 법에 대해 알아보겠습니다

위쪽 스크립트처럼 진행을 하면 됩니다. 자세히 보면 우선, 컴파일을 합니다.

그 다음 rmi registry를 실행시키는데, 주의할 것은 WindowsUnix에 커맨드에 차이가 조금 있습니다

윈도우즈는 “start rmiregistry인 반해, 유닉스 계열은 rmiregistry &”로 입력합니다

그리고 또 주의해야하는 부분이 있습니다바로 6번 라인 부분입니다

Codebase 부분에서 주소 끝에 슬러쉬 혹은 역슬러쉬로 입력하셔야 스텁 클래스를 찾아옵니다

그렇지 않으면 에러가 발생합니다.




3.2 Server - jar로 실행


커맨드


1
2
3
4
5
6
7
8
javac -<클래스 파일 생성 위치> <서버 자바> <인터페이스 자바>
 
Jar –cvf <jar파일 이름>.jar <클래스 폴더 이름>
 
Windows) start rmiregistry <포트번호>    
Unix) rmiregistry <포트번호> &
 
java -classpath <jar의 경로> -Djava.rmi.server.codebase=file:<스텁 jar 위치> <실행할 클래스 이름>
cs



Windows 실행 예제

( 현재 커맨드의 위치 : H:\rmiSeminar\Server )


1
2
3
4
5
6
7
javac -d H:\rmiSeminar\Server Server.java SampleI.java
 
jar -cvf Server.jar gym
 
start rmiregistry
 
java -classpath .;Server.jar -Djava.rmi.server.codebase=file:H:\rmiSeminar\Server\Server.jar gym.dev.Server
cs


서버 측에서 jar로 실행시에는 3번 라인에서 처럼 jar를 생성하고 클래스 패스에 jar의 경로를 써줘야 합니다.

아까 주의해야했던 8번라인 codebase에서 jar를 사용할 경우는 닫지 않아야 합니다

그리고, jar 사용시에 연결자를 주의하면서 커맨드를 실행해야 합니다

윈도우즈는 연결자로 세미콜론(;)을, 유닉스계열은 연결자로 콜론(:)을 쓰기 때문입니다.

이외에 내용은 스크립트를 참조하시면 될 것 같습니다.



3.3 Client(User 포함) - Class로 실행


커맨드


1
2
3
javac -<클래스 파일 생성 위치> <클라이언트 자바> <인터페이스 자바>
 
java -classpath <클래스 경로> <클라이언트 자바 클래스>
cs


Windows 실행 예제

( 현재 커맨드의 위치 : H:\rmiSeminar\Client(include User) )


1
2
3
javac -d .Client.java SampleI.java 
 
java -classpath . gym.dev.Client
cs



3.4 Client, User - Class로 실행


커맨드


1
2
3
4
javac -<클래스 파일 생성 위치> <클라이언트 자바> <인터페이스 자바>
javac -classpath <생성한 클래스 위치> <유저 자바>
 
java  -classpath <클래스 경로> <클라이언트 자바 클래스>
cs


Windows 실행 예제

( 현재 커맨드의 위치 : H:\rmiSeminar\Client(not include User) )

1
2
3
4
5
javac -d . Client.java SampleI.java
 
javac -classpath . User.java
 
java  -classpath . User
cs


3-4, User를 포함한 Client는 컴파일 후 실행하면 무리가 없습니다.

3-5, ClientUser가 분리된 쪽은 주의해야할 부분이 있습니다.

1번 라인에서 클라이언트 자바와 인터페이스 자바를 컴파일합니다

2반 라인에서 1번라인에서 생성된 클래스와 유저 자바를 함께 컴파일해야 합니다

왜냐하면, 유저 자바에서 클라이언트를 import하고 있기 때문입니다

그 후 나머지는 무리없이 하실 수 있을 거라 생각됩니다.



3.5 Client(User 포함) - jar로 실행


커맨드


1
2
3
4
5
javac -<클래스 파일 생성 위치> <클라이언트 자바> <인터페이스 자바>
 
Jar –cvf <jar파일 이름>.jar <클래스 폴더 이름>
 
java -classpath <jar 경로> <실행할 클래스 이름>
cs



Windows 실행 예제

( 현재 커맨드의 위치 : H:\rmiSeminar\Client(include User) )

1
2
3
4
5
6
7
javac -d . Client.java SampleI.java
 
jar -cvf Client.jar gym
 
 
java -classpath .;Client.jar gym.dev.Clien
 
cs



3.6 Client, User - jar로 실행


커맨드


1
2
3
4
5
6
7
javac -<클래스 파일 생성 위치> <클라이언트 자바> <인터페이스 자바>
 
Jar –cvf <jar파일 이름>.jar <클래스 폴더 이름>
 
javac -encoding euc-kr -classpath <jar파일 이름>.jar <유저 자바>
 
java -classpath <jar 경로> <실행할 클래스 이름>
cs


Windows 실행 예제


1
2
3
4
5
6
javac -d . Client.java SampleI.java 
jar -cvf Client.jar gym
 
javac -encoding euc-kr -classpath Client.jar User.java
 
java -classpath .;Client.jar User
cs



Jar로 실행 역시

3-6, 3번 라인에서 생성한 jar파일을

5번 라인처럼 유저 자바와 함께 컴파일한다는 부분만 주의하면 되겠습니다.



3.7 Java RMI 실행 화면



마지막으로 커맨드에서 실행한 화면 캡쳐를 보여드리며 Java RMI 포스팅을 마치겠습니다.


<서버 측 커맨드>


<서버 측 디렉토리>



<클라이언트, 유저 측 커맨드>



<클라이언트, 유저 측 디렉토리>





감사합니다.

'개발 > Java RMI' 카테고리의 다른 글

Java RMI, #2 Java RMI 프로그래밍  (0) 2017.02.22
Java RMI, #1 Java RMI란?  (0) 2017.02.21

+ Recent posts