2012-04-03 5 views
0

JAR 파일에 대해 배우고 직접 만들고 실행하려고했습니다. 나는 다음 단계를 수행 :JAR 파일을 실행할 때 오류가 발생했습니다

나는 다른 인스턴스를 생성하는 주요 방법이 개 소스 파일을 작성
  • 는 '소스'하위 폴더와 '수업'하위 폴더와 프로젝트 폴더를 생성
    1. 클래스에서 간단한 메소드를 실행합니다.
    2. 이들을 'classes'하위 폴더로 컴파일했습니다. 나는 그들이 달릴지를보기 위해 점검했다. 그들은 않았다
    3. 나는 manifest.txt 파일을 창조하고 Main-Class : xxxx를 채우고 반환 열쇠를 명중했다. 나는

      항아리를 작성하여 소스 하위 폴더 클래스의 하위 폴더에있는 jar 파일을 생성

    4. 이 저장된 -cvmf manifest.txt가 zzz.jar *을 .class

    5. 입력하여 jar 파일을 실행하기 위해 시도

    을 zzz.jar -jar

    자바 이것은면 ClassNotFound 예외를 준다. 창에서 파일을 더블 클릭하여 실행하려고하면 "주 클래스 xxxx를 찾을 수 없습니다"라는 오류 메시지가 나타납니다.

    매니페스트 파일의 클래스 철자를 두 번 확인했는데 정확합니다.

    아마도 중요 : java -cp를 사용하여 프로그램을 컴파일해야합니다. xyz 내 클래스 경로에 문제가 있기 때문입니다. 이것은 다른 방식으로 단지를 실행해야한다는 것을 의미합니까? 나는 java -cp를 시도했다. -jar zzz.jar 하지만 같은 예외가 발생했습니다.

    편집 : 처음부터 끝내고 지금은 (기본 -jar zzz.jar 명령으로) 실행됩니다. 나는 내가 뭘 잘못하고 있었는지 모르지만 그것이 일하고 있다는 것을 기쁘게 생각한다!

  • +0

    은 : 당신은 항아리 TF 내가 바로 지금했던 Jayan

    +0

    으로 항아리의 내용을 확인 않았다

    는 jar 파일을 실행할 수에 포함 된 내용을 확인하십시오. 여기에는 2 개의 클래스 파일과 META-INF 폴더 및 manifest.mf 파일 – Sperick

    답변

    1

    아마도 클래스 경로 다음에 실행할 .class 파일의 전체 경로를 제공해야 할 것입니다. 즉 java -cp xxx.jar classes.mainProgram.class입니다. 여기서 classes은 클래스 파일이 들어있는 폴더의 이름입니다.

    +0

    이 포함되어 있습니다. 내 항아리는 test.jar라고 불리우고 main 클래스의 클래스는 classTestMain이라 불린다. java -cp test.jar classes.classTestMain.class 이렇게하면 예외 예외가 발생했다. – Sperick

    1

    숫자 5가 아니어야합니다. 모든 클래스 파일이있는 클래스 하위 폴더에서 실행해야합니까? 클래스가 패키지에 포함되어 있다면, * .class .. 대신 *를 사용하는 것이 좋습니다.

    Sperick @
    jar tf zzz.jar 
    
    +0

    미안하지만 오타였다. 나는 (책에서)이 단계를 수행하면서 패키지에 클래스를 배치하지 않았다. 그리고이 클래스를 실행 한 후에는 다음 단계가 될 것이다. – Sperick

    관련 문제