개발 일기

java 파일 컴파일하기 본문

카테고리 없음

java 파일 컴파일하기

flow123 2022. 3. 7. 23:43

(1) 에디터에 package.java 파일을 만든다. 

 

package c.javapackage; //

public class Package {
  public static void main(String[] args) {
    System.out.println("Package Class.");
    }
  }

(2) 

(3) 

에디터에서 쓴 코드에 package를 대문자로 썼을 때는 error가 났다.  package위치로 인식하지 못하기 때문에 에러 메시지가 뜬다. 

소문자로 바꿔주고 나니 잘 실행된다. 컴파일 할 때는 아무것도 뜨지 않으면, 내가 잘 한거다. 

dir 명령어로 확인해보면, class 파일이 생성 된 것을 확인할 수 있다. 


Package 선언을 할 때 제약사항 

 

(1) 패키지는 소스의 가장 첫 줄에 있어야 한다. 

(2) 패키지 선언은 소스에 하나만 있어야 한다. 

(3) 패키지 이름과 실재로 파일이 위치한 폴더 이름이 같아야만 한다. 

(4) 패키지의 이름은 모두 소문자로 지정해야 한다 

(5) 자바의 예약어 (int, static 등)가 패키지 이름에 들어 있으면 안된다.

package c.javapackage; //

public class Package {
  public static void main(String[] args) {
    System.out.println("Package Class.");
    }
  }

 

컴파일을 할 때는, 

자바 해당 패키지의 가장 상위 디렉터리 (root)에서 실행을 해야만 한다. 

 


 

package c.javapackage; //

public class Package {
  public static void main(String[] args) {
//    System.out.println("Package Class.");
  Sub sub = new Sub(); 
  sub.subClassMethod(); 
    }
  }
package c.javapackage.sub;

public class Sub {
  public Sub() {
    }
  public void subClassMethod() {
    }
  }

왜 에러가 날까? Package.java 의 입장에서는, Sub 클래스가 어디에 존재하는지 알 길이 없다. 그러니 Import 를 써줘야 한다. import 를 해줘도 계속 아래의에러가 난다. 

package c.javapackage; 

import c.javapackage.sub.Sub;

public class Package {
  public static void main(String[] args) {
//System.out.println("Package Class.");
 Sub sub = new Sub(); 
 sub.subClassMethod(); 
    }
  }

 

Comments