2012-08-24 3 views
1

그래서 util이라는 폴더를 만들고 unit10Assignment라는 프로그램과 함께 4 개의 클래스를 배치했습니다. 나는 패키지 폴더의 유틸리티 및 입력 만든 "패키지 폴더의 유틸리티를,"이 같은 클래스 코드의 각각의 상단에 : java 패키지가 존재하지 않으며 나쁜 소스 파일

package util; 

public class Employee 

그러면 내가 쓴 :

import util.*; 
import javax.swing.JOptionPane; 

public class unit10Assignment 

프로그램의 상단에. 그러나 내가 그것을 컴파일 할 때, 그것은 나에게 말한다. 왜 그런지 알아? 나는 그것으로 놀아 보았고 import java.util *을 타이핑했을 때 사라졌다. 대신에 선생님이 원했던 예가 자바를 앞에두고 있지 않았 음을 확신하지 못합니다.

또한 "bad source file"패키지에는 "Employee 클래스"가 포함되어 있지 않습니다. 그러나 패키지 문을 입력하기 전에 모든 것이 컴파일되고 완벽하게 실행되었으므로 그 이후로 코드를 변경하지 않았습니다. 만약 employee 클래스에서 package 문을 제거했다면 같은 메시지가 나타나지만 다른 클래스는 존재하지 않는다고 말할 수 있습니다.

어떤 도움을 주셔서 감사합니다 주 : java.util 또는 util 만 넣었는지 여부에 관계없이이 문제는 여전히 불량 원본과 함께 나타납니다.

답변

3

난 당신이 프로젝트는 다음과 같이 설정 한 가정을 만들려고 해요 :

util/ 
    Employee.java 
    unit10Assignment.java 
bin/ 

(그렇지 않은 경우, 그 괜찮습니다 - 그들은 일부 폴더에있어 너무 오래로 . 이 있어야합니다.)

패키지의 작동 방식은 패키지가 하드 드라이브의 폴더라는 것입니다. 가져올 패키지에 가져올 폴더와 클래스가 모두 같아야합니다. 폴더. 이것이 패키지가 편리한 이유입니다. Employee이라는 두 개의 클래스를 가질 수 있으며 완전히 다른 위치에 살게 할 수 있습니다. *

다음은 IDE를 사용하지 않고이를 패키지와 같은 구조로 컴파일하는 방법입니다. Java 클래스 폴더의 전체 경로를 $ HOME으로 대체하십시오.

java -cp $HOME/bin util.$MAIN_CLASS 

이러한 플래그가 무엇을 의미하는지의 고장 :

javac -sourcepath $HOME/util -d $HOME/bin *.java 

그리고 여기 당신이 당신의 메인 클래스를 실행하는 방법

  • -sourcepath은 소스 파일이 특정 디렉토리에서 보는 javac의 지시 .
  • -d은 .class 파일의 출력 디렉토리를 지정합니다.
  • -cp은이 폴더를 클래스 경로에 추가하도록 java에 지시합니다.

* : 정말 큰 프로젝트는 종종 다른 클래스와 같은 이름을 사용할 수 있습니다. 특정 제품을 사용하려면 fully-qualified class name을 사용해야합니다.

+0

죄송하지만 bin /은 무엇입니까? –

+0

그것은 단지 'util /'처럼 폴더입니다. 일반적으로 바이너리가 프로젝트에 존재하는 곳입니다 (따라서 ** bin **). – Makoto

0

이 확인 어떤 도움

덕분에 있는지 확인하십시오

  • 파일 이름이 클래스 이름을 (예를 들어, 클래스 Employee에 대한 Employee.java)
  • 파일을 자신의 패키지에 따라 해당 폴더 안에있는 (일치 즉 util)

IDE를 사용하고 있습니까? 그렇지 않다면 진짜를 사용하는 것이 이런 종류의 일에 많은 도움이됩니다.

관련 문제