2012-05-10 4 views
3

지금 당분간이 문제로 고생하고 있습니다. thisthis을 찾았지만 그 해결책은 전혀 작동하지 않습니다.더블 클릭으로 시작할 때 jar에서 리소스를 열 수 없습니다.

내 항아리 명령 프롬프트에서 자바 -jar와 함께 완벽하게 작동하지만이 두 배로 때 JFrame의 창을 열하지만이에 실패, 클릭 : 널 포인터 예외 및 자원의 여부에 결과

Scanner fileLat = new Scanner(a.getClass().getResourceAsStream("/motor/resources/lat.txt")); 
Scanner fileLong = new Scanner(a.getClass().getResourceAsStream("/motor/resources/long.txt")); 

발견되고있다. 의 난 그냥 this 시도 (especifically :

/ (root) 
|- META-INF 
|- motor 
|- main 
    |- Main.class 
|- resources 
    |- lat.txt 
    |- long.txt 

다음과 같이 내 MANIFEST.MF 읽습니다 :

내 디렉토리 구조 (단지 내부)은 다음과 같습니다

Manifest-Version: 1.0 
Class-Path: . 
Main-Class: motor.main.Main 

편집 jar : file : MyJar.jar!/etc ...) 그리고 작동하지 않았다.

+0

현재 디렉토리는 무엇입니까? 'Class-Path : .' 의심스러운 것 같습니다. – Vlad

+0

Windows에서 파일을 두 번 클릭하면 해당 파일의 디렉토리로 고정됩니다. 그렇지 않습니까? 나도 그렇게 생각해. 명령 프롬프트의 경우 다른 프롬프트가 있지만 작동합니다. – Nirro

+0

흠, 확실하지 않습니다. 프로그램 시작시 현재 디렉토리를 콘솔 또는 일부 파일로 출력하십시오. – Vlad

답변

0

Class-Path을 매니페스트에서 삭제하려고 시도 했습니까? 클래스 패스 정의는 여기있는 예제에서는 드문 일입니다. 많은 어플리케이션 (jEdit 및 jExt 설치 프로그램 포함)은이 클래스없이 실행됩니다.

공백을 추가 할 수도 있습니다.

+0

클래스 경로 게임을 정의하지 않으면 공란으로 남겨 둡니다. "유효하지 않거나 손상된 jarfile" Class-Path 속성이 없을 때 "C : \ Users \ Nirei \ Downloads \ EarthClock.jar에서 Main-Class Manifest 속성을로드하지 못했습니다." – Nirro

관련 문제