2014-12-17 2 views
0

프로그램 (여러 파일로 구성)이 성공적으로 컴파일 되려면 때때로 한 번에 여러 개의 java 파일을 javac 번으로 전달해야한다고 들었습니다.javac에 파일 전달

또는 아마도 나는 오해했습니다. java.tools.JavaCompiler인데 때때로 여러 파일을 한꺼번에 전달해야하는 경우가 있습니다.

어느 쪽이든, 나는 그것이 사실인지 아닌지는 모르겠다. 적절한 클래스 패스와 함께 개의 파일을 하나씩 전달하는 것이 항상 충분하다고 생각했습니다.

누군가 설명해 주시겠습니까?

+1

하나의 파일 프로그램이있는 경우 왜 여러 파일이 필요합니까? – APerson

답변

1

파일이 하나 (또는 ​​여러 개)가 상호 종속적 인 경우 true 일 수있는 사용자 지정 클래스를 나타내는 경우. 이들을 컴파일러에 즉시 전달해야합니다. 그렇지 않으면 컴파일이 실패합니다.

class A { 
    B b = new B(); 
    void do() { 
    b.play(); 
    } 
} 

class B { 
    A a = new A(); 
    void play() { 
    System.out.println(a); 
    } 
} 

AB이 컴파일시에 가능하지 않고 컴파일되지 않습니다. 첫 번째 단락의 키워드는 이고 때로는입니다.

3

각각 서로 의존하는 두 개의 클래스가있는 경우 두 클래스 중 하나를 별도로 컴파일하면 실패합니다.

public class ClassOne 
{ 
    ClassTwo classTwo; 
} 

public class ClassTwo 
{ 
    ClassOne classOne; 
} 

는 "기호를 찾을 수 없습니다"오류가 발생합니다 분리 컴파일 그들 각각의

, 다른 클래스는 아직 집계되지 않기 때문에.

두 명령을 한 명령으로 모두 컴파일하면 두 클래스가 모두 성공적으로 컴파일됩니다.

javac *.java