2013-08-20 4 views
0

두 개의 자바 파일 (주 클래스 (Practica1) 및 다른 클래스 (Matriz2x2))을 받았습니다. 둘 다 같은 폴더에 있습니다. 주 클래스 인스턴스는 내가 준 클래스이고 "심볼을 찾을 수 없습니다"라는 오류가 발생합니다. Matriz2x2 클래스가 컴파일됩니다.자바 "심볼을 찾을 수 없습니다"다시

나는 간단히 각 클래스 (메소드, 등 ...) 그래서, 세부 사항을 제공하지 않습니다는 Matriz2x2 클래스는 다음과 같이 진행됩니다

package mx.unam.ciencias.icc; 

public class Matriz2x2 { 

    private double a; 
    private double b; 
    private double c; 
    private double d; 

    public Matriz2x2(double a, double b, 
        double c, double d) { 
     this.a = a; 
     this.b = b; 
     this.c = c; 
     this.d = d; 
    } 
} 

을 그리고 이것은 기본 클래스입니다 :

package mx.unam.ciencias.icc; 

import java.util.Random; 

public class Practica1 { 

public static void main(String[] args) { 
    Random r = new Random(); 

    Matriz2x2 m = new Matriz2x2(r.nextDouble() * 100, 
           r.nextDouble() * 100, 
           r.nextDouble() * 100, 
           r.nextDouble() * 100); 
    } 
} 

이 는 울화통입니다 :

[email protected]:~/practica1/src/mx/unam/ciencias/icc$ javac Practica1.java 
Practica1.java:13: cannot find symbol 
symbol : class Matriz2x2 
location: class mx.unam.ciencias.icc.Practica1 
     Matriz2x2 m = new Matriz2x2(r.nextDouble() * 100, 
     ^
Practica1.java:13: cannot find symbol 
symbol : class Matriz2x2 
location: class mx.unam.ciencias.icc.Practica1 
     Matriz2x2 m = new Matriz2x2(r.nextDouble() * 100, 
         ^
Practica1.java:17: cannot find symbol 
symbol : class Matriz2x2 
location: class mx.unam.ciencias.icc.Practica1 
     Matriz2x2 n = new Matriz2x2(r.nextDouble() * 100, 
     ^
Practica1.java:17: cannot find symbol 
symbol : class Matriz2x2 
location: class mx.unam.ciencias.icc.Practica1 
     Matriz2x2 n = new Matriz2x2(r.nextDouble() * 100, 
         ^
Practica1.java:37: cannot find symbol 
symbol : class Matriz2x2 
location: class mx.unam.ciencias.icc.Practica1 
     Matriz2x2 i = m.inversa(); 
     ^
Practica1.java:43: cannot find symbol 
symbol : class Matriz2x2 
location: class mx.unam.ciencias.icc.Practica1 
      Matriz2x2 id = m.multiplica(i); 
      ^
6 errors 

당신은 내가 Matriz2에 포함되지 않은 방법에 대한 다른 오류가 볼 수 있듯이 x2 샘플이지만, 모두 동일한 문제에 관한 것이기 때문에 Matriz2x2 클래스를 찾을 수 없습니다. 간단 할 수도 있지만 코드에서 작성한 실수 (교사가 쓴 것 외에는)가 표시되지 않으므로 주 수업이 컴파일되지 않는 이유를 알지 못합니다. 모든 것이 옳은 것 같습니다.

+0

두 클래스가 모두 컴파일되어 클래스 경로에 있는지 여부 –

+0

Eclipse 또는 다른 IDE를 사용하고 있습니까? 프로젝트를 다시로드하십시오. – guisantogui

답변

4

소스 계층의 루트에서 javac을 호출해야합니다.

그래서 이렇게 :

cd ~/practica1/src 
javac mx/unam/ciencias/icc/Practica1.java 

이 방법은, 컴파일러는 어디 Matriz2x2.java 파일을 찾을 방법을 알고있다.

Java는 디렉토리 구조가 패키지 이름을 반영하도록 요구합니다. 따라서이 클래스는 mx.unam.ciencias.icc 패키지에 있기 때문에 컴파일러는 현재 디렉토리의 mx/unam/ciencias/icc 하위 디렉토리에있을 것으로 예상합니다. 그러나 현재 디렉토리를 하위 디렉토리로 만들면 컴파일러를 혼란스럽게 만듭니다.

더 나은 솔루션은 빌드 스크립트 (Ant)를 작성하거나 IDE를 사용하는 것입니다.

+0

감사합니다. 나는 투표를 할 것이지만 나는 대표가 없다. –

+0

@ JoséCasillas : 대신 대답을 수락하십시오! –

+0

해답을 해결책으로 수락 할 수 있습니다. –

1

실용적인 클래스를 컴파일하기 전에 먼저 Matriz2x2 클래스의 컴파일러를 준비하십시오.

관련 문제