2014-02-12 2 views
11

런타임에서 클래스가 제공되는 jar의 버전 번호를 검색 할 수 있는지 궁금합니다. 버전에 대한런타임에 jar 버전 가져 오기

MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath(); 

하지만 :

나는 클래스에서 제공되는 항아리를 찾기 위해 가능한 한 알아?

+1

항아리가 없습니다 버전. –

+0

네, 맞습니다, 버전은 라이브러리 버전에 속하지만 '속어 버전 x.y.z' – 1ac0

답변

13
import javax.mail.internet.InternetAddress; 

/** 
Display package name and version information for javax.mail.internet. 
*/ 
public final class ReadVersion { 
    public static void main(String... aArgs){ 
    ReadVersion readVersion = new ReadVersion(); 
    readVersion.readVersionInfoInManifest(); 
    } 

    public void readVersionInfoInManifest(){ 
    InternetAddress object = new InternetAddress(); 
    Package objPackage = object.getClass().getPackage(); 
    //examine the package object 
    String name = objPackage.getSpecificationTitle(); 
    String version = objPackage.getSpecificationVersion(); 
    //some jars may use 'Implementation Version' entries in the manifest instead 
    System.out.println("Package name: " + name); 
    System.out.println("Package version: " + version); 
    } 
} 
11

이 시도, 그것은 도움이 될 수있다 (그 파일 이름 :하지 가정) :

String s = new String(); 
System.out.println(s.getClass().getPackage().getSpecificationVersion()); 
System.out.println(s.getClass().getPackage().getImplementationVersion()); 

출력 :

1.7 
1.7.0_25