2012-09-25 4 views
0

내 코드는 매우 간단합니다. 방금 패키지를 만들려고했습니다.Java : 패키지 스펙을 클래스에 추가하면 런타임 오류가 발생하는 이유는 무엇입니까?

// /home/user1/Code/packageTest/src/myPackage/Test.java 

package myPackage; 

public class Test 
{ 

    public static void main(String[] args) 
    { 
     System.out.println("Hello, world."); 
    } 
} 

이 코드가 일부 디렉토리 myPackage에 있다고 가정 해 보겠습니다.

첫 줄 (패키지 사양)을 주석 처리하면 코드가 제대로 실행되고 메시지가 인쇄됩니다. 어느 쪽이든 컴파일하지만 주석 처리되지 않은 패키지 줄을 사용하여 컴파일하면 런타임 오류가 발생합니다.

패키지를 성공적으로 만들려면 어떻게해야합니까? 올바른 검색 용어를 찾지 못하고 패키지에 대한 명명 규칙, 왜 네임 스페이스를 구분하는 데 사용되는지, bla bla bla에 대한 실제 설명은 찾을 수 없습니다. 이 실험의 다음 부분은 내 패키지 가져 오기를 시도 할 예정 이었지만 분명히 그렇게까지 도달하지 못했습니다.

아마도 클래스 패스와 어떤 관계가 있을까요? 내 "기본 디렉토리"는 무엇입니까? 이것에 대한 정보는 크게 감사하겠습니다.

+0

패키지 이름에 어떤 오류가 있습니까? – sudmong

+0

코드를 어떻게 실행하고 있습니까? 특정 오류를 인용하십시오. – pb2q

+0

어쩌면 적절한 classpath 매개 변수를 지정해야합니다. – George

답변

3

Java 파일에서 클래스 이름은 myPackage 인 디렉토리에 만들어야합니다.

java myPackage.Test 

일예를 :

javac myPackage/Test.java 

을 다음과 같이 다음과 같이 그럼 당신은 완전한 클래스 이름 (FQCN)로 실행 그런 다음 디렉토리에서 와서 컴파일해야

C:\Temp\test1>type myPackage\Test.java 
package myPackage; 

public class Test 
{ 

    public static void main(String[] args) 
    { 
     System.out.println("Hello, world."); 
    } 
} 
C:\Temp\test1>javac myPackage/Test.java 

C:\Temp\test1>java myPackage.Test 
Hello, world. 

C:\Temp\test1> 
관련 문제