2011-10-12 2 views
0

나는 Verification.jar 파일을 엑셀 파일의 일부 조건을 검사하고있다. 내가 같은 수준에서 로그라는 폴더를 생성 Verification.jar가 존재합니다. Advence에서Jar 파일 경로를 얻는 방법

감사합니다 .........

편집

"확인"을 다음과 같이 내가 폴더를있다 : - 빌드, DIST, LIB, nbproject, src, Test, build.xml

"빌드" 포함 클래스 폴더

"DIST는"Verification.jar 및 lib 폴더가

"LIB는" 라이브러리 파일

내가 Verification.jar의 경로를 찾아 폴더 출력라고 만들려을 포함 포함.

드라이브를 변경하면 Verification.jar이있는 동일한 레벨의 폴더가 만들어야합니다.

Output:--getPath:/C:/Java/jdk1.6/bin/Verification/lib/

+1

간단한 방법 중 하나는 원하는 경로를 명령 줄 매개 변수로 전달하는 것입니다. –

+0

내 Verification.jar이있는 디렉토리를 찾을 수 있습니까? –

답변

2

사용 URL Class.getResource(String name) 방법

String path= getClass().getResource("").getPath(); 
.

package.ClassName.class.getClassLoader().getResource("package.ClassName"); 

편집 :

큰 SO 스레드에서 찾아 보게 - How to get the path of a running jar file? 뱀장어의 @Hovercraft 전체 제안을

+0

덕분에 도움이되었습니다 ...... –

0

올바른 형식은 다음과 같습니다

String directory = System.getProperty("user.dir"); 

당신은을 실행하는 경우 .jar 파일은 현재 작업 디렉토리를 리턴합니다. 이것은 .jar이 위치한 디렉토리입니다 ...

IDE는 jar 파일을 실행하지 않고 main 메서드가있는 .class 파일을 실행하므로 IDE에서이 메서드가 프로젝트 폴더를 반환 할 때

PD : 문법 오류를 작성하면 죄송합니다. , 영어는 제 모국어가 아닙니다.

0

가장 좋은 해결책은 아니지만이 기능을 사용합니다. jar 파일의 이름은 프로젝트와 동일해야합니다. Windows 및 Linux에서 작동합니다. 어떤 사람들이 그것을 향상시킬 수 있다면 나는 영예를 얻게 될 것입니다.

public String getJarCurrentJar() { 
      String[] userDir = System.getProperty("user.dir").split("\\"+System.getProperty("file.separator")); 
      String appName = ""; 
      for (String temp : userDir) { 
       appName = temp; //Get the application name/jar 
      } 
      return System.getProperty("user.dir") + System.getProperty("file.separator") + "dist" + System.getProperty("file.separator") + appName+".jar"; 
     } 
관련 문제