2017-04-09 10 views
1

Windows 10에서 명령 줄 인터페이스가있는 패키지에서 Java RMI 할당을 컴파일하는 데 약간의 문제가 있습니다 (Eclipse 또는 다른 IDE를 사용할 수 없음). 두 개의 .java 파일 (RemoteBankServer.java 및 RemoteBankClient.java)을 컴파일하고 실행해야합니다. 이 두 파일은 다른 .java 클래스 (Bank.java, RemoteBankImpl.java, RemoteBank.java, Account.java 및 Account.java의 서브 클래스)를 사용합니다. 이전에는 하나 개의 폴더 내 파일을 모두와 함께, 내가 쉽게 컴파일 할 수와 함께 두 개의 명령 줄 창 내 서버와 클라이언트를 실행Java 다중 패키지에서 RMI 서버/클라이언트 응용 프로그램 컴파일

javac RemoteBankServer.java 
java RemoteBankServer 

및 RemoteBankClient에 대해 동일합니다. 내가 그 폴더를 만든 (에듀/btp400/w2017 /) 및 놓여있다

- package name: edu.btp400.w2017.client 
    class name: RemoteBankClient 

- package name: edu.bt400.w2017.server 
    class names: RemoteBankImpl, RemoteBankServer 

- package name: edu.btp400.w2017.common 
    class name: RemoteBank (and all other classes, like Bank, Account, etc.) 

: 지금은 내 코드가 잘 작동하는지 테스트 한 것으로,이 구조 다음, 자바 패키지로를 구성하는 데 필요 각 폴더의 적절한 클래스를 컴파일 할 수 없습니다. 지금, 나는 각각 된 .java 파일의 상단에 다음 두 줄이 있습니다

package edu.btp400.w2017.server; //or .common or .client 
import edu.btp400.w2017.*; 

을하지만, (이와 같은, (서버 폴더에) RemoteBankServer.java를 컴파일 할 때 나는 여전히 컴파일 오류가납니다 그 계정을 말하는

RemoteBankServer.java:40: error: cannot find symbol 
        RemoteBankImpl b1 = new RemoteBankImpl(); 
              ^
symbol: class RemoteBankImpl 
location: class RemoteBankServer 

뿐만 아니라 비슷한 오류 및 다른 클래스가 나는 자바 패키지로 컴파일하는 방법에 대한 다양한 게시물을 검토 한 결과를 찾을 수 없습니다. RemoteBankImpl 같은 폴더 및 RemoteBankServer에 있기 때문에 이는, 이상한 커맨드 라인 인터페이스를 사용하여,하지만 난 그것을 얻지 못했습니다. 어떤 도움을 주시면 크게 감사 할 것입니다. 긴 게시물 죄송합니다.

편집 : 이것은 내가 (다양한 패키지에있는 파일을 저장 한 후) 위의 컴파일하는 데 사용되는 명령은 다음과 같습니다 내가 에듀 포함 된 폴더에 이것을 시도, 27 컴파일 오류 가지고 :

javac -cp . edu/btp400/w2017/server/RemoteBankServer.java 

이를

javac RemoteBankServer.java 

편집 : 내가 할 필요가 대신 import edu.btp400.w2017.*;의 : 사용자 EJP 덕분에, 나는 내 import 문에 하위 폴더를 포함하는 데 필요한 것을 발견

서버 폴더 안에, 15 컴파일 오류가있어,451,515, *로 표시된 하위 패키지에있는 모든 클래스를 가져 오지 않습니다
import edu.btp400.w2017.common.*; 
import edu.btp400.w2017.server.*; 
import edu.btp400.w2017.client.*; 
+0

컴파일 할 때 사용한 명령은 무엇입니까? – prasanth

+0

소스 파일에 패키지 선언을 포함 시켰습니까? – prasanth

+0

@prasanth 예, 각 소스 파일에 package 선언 (package edu.btp400.w2017.server; (또는 폴더가있는 폴더))을 포함 시켰습니다. 또한 내 명령으로 게시물을 편집했습니다. 감사. – zzzzz

답변

0
import edu.btp400.w2017.*; 

. 별표는 클래스를 나타냅니다.

모든 패키지를 개별적으로 가져와야합니다.

+0

답장을 보내 주셔서 감사합니다. 이 파일을 내 .java 파일의 맨 위에 넣습니다. 'import edu.btp400.w2017.common. *;' import edu.btp400.w2017.server. *; import edu.btp400.w2017.client.*; 이제 RemoteBankServer 및 RemoteBankClient를 패키지 외부 (edu보다 한 수준 위의 폴더)에서 컴파일하면 컴파일되고 제대로 실행됩니다. 하지만 edu (또는 하위 디렉토리)에서 컴파일하려고하면 그렇지 않습니다. 그게 어떻게되어야하는가요? 나는 패키지 밖에서 만 컴파일 할 수 있습니까? 감사. – zzzzz