2015-01-13 3 views
2

기존 프로그램의 확장을 시도하고 주요 프로그램을 돕기 위해 다른 클래스를 만들고 싶습니다. 이상적으로는 둘 다 동일한 패키지에있어 서로 액세스 할 수 있습니다. 나는 다른 많은 질문을 검토하고 약간의 컴파일 방법 (이 새로운 것)의 복잡성 때문에 약간 혼란 스러웠다. 그래서 여기에 내 설정의 예가 있습니다 :같은 패키지에서 Java 프로그램을 쉽게 실행하는 방법은 무엇입니까?

두 가지 클래스가 있습니다. 하나는 main 메소드와 함께 하나의 패키지 인 "cereal.crunchy"에 있습니다.

1 등급 : 중요
2 등급 :

package cereal.crunchy; 

모든 공개 : 정크

$ cd ~/Desktop/cereal/ 
$ javac crunchy/*.java 
$ java crunchy/Important 

나는

Could not find or load main class 

모두 패키지 선언을 가지고있는 오류가 발생했습니다. 나를 혼란 무엇

내가 이전에 언급 한 방법을 사용하여 컴파일 한 후

$ cd ~/Desktop/ 
$ java cereal/crunchy/important 

프로그램 실행을하고 다른 클래스에 액세스 할 수있는시기이다.

나는 내가 할 수없는 이유를 난 그냥 이해하지 못하는 것 같아요 :

$ cd ~/Desktop/cereal/ 
$ javac crunchy/*.java 
$ java crunchy/Important 

(그러나 나는 다른 질문에 고개 보지 못했다, 내가이 질문은 정말 닦지 않는 것을 이해, 제발 도와주세요 모든 간단한 대답). (학교용이 아닌, 내가 혼자서하고있는 것). 당신은 자바 프로그램을 실행하면

답변

2

, 당신은

패키지는 디렉토리와 동일하지 않은 패키지와 클래스를 지정합니다. 디렉토리 세퍼레이터 /이지만

  1. 는 패키지 세퍼레이터 .이다. 즉

    , 당신은해야 할 것 : 대신

    java crunchy/Important 
    
  2. java crunchy.Important 
    

    Important의 패키지가 cereal.crunchy이기 때문에 디렉토리 crunchy에 있다면, 그것은 작동하지 않습니다 . 디렉토리 cereal/crunchy에 있어야합니다.

    즉, cereal은 현재 디렉토리에 있어야합니다.

그래서, 당신은 이런 식으로 할 것 :

java cereal.crunchy.important 
+0

감사합니다 순전히!이전 클래스에서는 패키지 선언을 한 적이 없었고 cd를 사용하여 파일의 디렉토리로 이동 한 다음 컴파일하여 실행했습니다. 필자는 파일 경로를 설명하는 패키지 문을 항상 떠나야한다고 생각했습니다. 감사! –