2013-04-12 1 views
0

좋아, 그래서 나는 SWT라는 일식 프로젝트가 있습니다. 이이 프로젝트의 클래스 중 하나에서 코드입니다 : 내가 컴파일하고 이클립스 내 프로젝트를 실행하면eclipse java 프로젝트를 실행 가능한 jar로 내보낼 때 상대 경로와 절대 경로를 조정하는 방법은 무엇입니까?

public static String rpath = "..\\SWT\\src\\data.txt"; 
public static String path = new File(rpath).getAbsolutePath(); 

, 내 프로그램은 data.txt로를 찾아 파일의 의도 입력으로 사용할 수 있습니다 목적.

이 프로젝트를 실행 가능한 jar 파일로 내 보낸 다음 명령 프롬프트를 열고 java -jar SWT.jar을 입력하십시오. 프로그램이 열리지 만 명령 프롬프트에서, 다음과 같은 오류가 :

java.io.FileNotFoundException: C:\Users\Yoshikawa\workspace\SWT\..\data.txt (The system cannot find the file specified)

내 질문 :

내가 있도록 실행 항아리에 수출하기 전에 내 코드를 수정하는 방법 내 실행 파일을 data.txt를 찾을 수있게 만들 수 있습니까? 그건 그렇고, 내 실행 파일 jar는 이미 data.txt를 포함하고 있지만 위의 지정된 상대 경로를 사용하여 정확한 위치를 찾을 수 없다.

답변

0

jar 파일에 src 디렉토리가 없습니다. 패키지 이름과 클래스 파일 만.

0

이 시도 :

URL url = ClassLoader.getSystemResource("/data.txt"); 
File file = new File(url.toURI()); 

더 많은 정보 here합니다.

+0

? 위에 추가 된 두 줄을 삭제하고 이것을 대체합니까? 아니면이 외에도 추가합니까? 또한 문자열 형식의 파일 경로를 원합니다. – nbhgt

0

이 작업을 수행하기 위해이 패키지에서 클래스를 사용하여 다음 몇 가지 패키지의 파일 data.txt로를 넣을 수 있습니다 : 나는 코드의 두 줄을 추가 할

URL url = ClassFromSamePackageOfFile.class.getResource("data.txt"); 

File f; 
try { 
    f = new File(url.toURI()); 
} catch(URISyntaxException e) { 
    f = new File(url.getPath()); 
} 
관련 문제