2012-11-25 2 views
2

패키지에 두 개의 Java 클래스가 있습니다. 하나의 클래스의 객체를 다른 클래스에 만들고 싶지만 오류 메시지가 나타납니다. ERROR : 심볼을 찾을 수 없습니다.Java 클래스의 Object를 다른 클래스에 배치 할 수 없습니다.

package pckg; 
public class aa{ 
    private String name; 
    public aa(){} //Constructor of aa class 
    public void setName(String name){this.name=name;} 
    public String getName(){return name;} 
} 

package pckg; 
public class bb{ 
    aa obj = new aa(); //This line gives error message 

    public bb(){} //Constructor of bb class 

} 

두 클래스 모두 같은 폴더에 있습니다.

오류 메시지 :

D:\Java\mypack>cd.. 

D:\Java>cd pckg 

D:\Java\pckg>set path=d:\java\jdk1.5\bin 

D:\Java\pckg>javac aa.java 

D:\Java\pckg>javac bb.java 
bb.java:3: cannot find symbol 
symbol : class aa 
location: class pckg.bb 
aa obj = new aa(); //This line gives error message 
^ 
bb.java:3: cannot find symbol 
symbol : class aa 
location: class pckg.bb 
aa obj = new aa(); //This line gives error message 
      ^
2 errors 
+2

printstacktrace를 게시 할 수 있습니까? 한눈에 코드가 괜찮은 것 같습니다. 그 클래스는 별도의 자바 파일에 있습니까? – djakapm

+0

예 하나의 패키지에 두 개의 서로 다른 파일이 있습니다. aa.java 및 bb.java – Rebbeca

+0

IDE에 오류 추적을 붙여 넣을 수 있습니까? 아니면 컴파일하고 터미널에서 실행합니까? – djakapm

답변

1
D:\Java\ > javac -classpath . pckg\aa.java 
D:\Java\ > javac -classpath . pckg\bb.java 

클래스 경로를 지정하지 않으면 javac는 이미 컴파일 된 클래스를 찾을 수있는 위치를 알 수 없습니다.

또한 클래스는 Java에서 대문자로 시작해야합니다. 그리고 나는 소스 파일과 클래스 파일에 같은 디렉토리를 사용하는 것을 피할 것이다. 소스를 d : \ Java \ src에 넣고 D : \ Java 클래스에 클래스를 넣는 것이 좋습니다. 그런 다음, 한 번에 모든 것을 컴파일하려면 다음 명령을 사용

D:\Java\ >javac -cp classes -d classes src\pckg\*.java 
+0

확인. 내가 이것을 시도하자. – Rebbeca

+0

감사합니다. 그것은 효과가 있었다. – Rebbeca

1

귀하의 코드는 아무런 문제가 없다가, 어쩌면 패키지의 다른 클래스와 이름 충돌이있다.

+0

내 패키지 폴더 pckg에이 두 클래스 만 있습니다. . 처음에 나는 aa.java를 컴파일했고 컴파일은 괜찮았다. 그런 다음 bb.java를 컴파일하려고 시도했지만 심볼을 찾을 수없는 오류 메시지가 나타납니다. – Rebbeca

+0

bb.java를 컴파일하려고하면 컴파일 된 aa.class 파일이 bb.java와 같은 폴더에서 사용 가능해야합니다. – Juvanis

+0

aa.class는 bb.java를 컴파일하기 전에 동일한 폴더에서 사용할 수 있습니다. – Rebbeca

0

javac -cp . *.java

당신이 'pckg'디렉토리 안에 있다고 가정 해보십시오.

@JB Nizet은 이미 대답했다고 생각합니다.

관련 문제