2010-01-12 4 views
2

내 수업에서 javadoc @version 태그를 사용합니다. 그러나 어떻게 해야할지 잘 모르겠습니다. 클래스의 버전을 가져 오십시오. 예를 들어 보겠습니다 ...클래스에 javadoc 버전을 사용 하시겠습니까?

/** 
* @version 1.0a 
* @author Redandwhite 
*/ 
public class JClass extends JFrame implements ActionListener, KeyListener { 
    String version = ... 
} 

버전을 검색 할 수있는 메소드/클래스가 있습니까? 이상적으로는 간단한 문자열을 반환하는 API 호출과 같이 간단합니다.

답변

5

javadoc 주석은 생성 된 바이트 코드에 어떤 형식으로도 포함되지 않으므로 자바 코드에서 @version 태그의 값에 액세스 할 수 없습니다 (물론 소스 코드를 구문 분석하지 않는 한). javadoc @version 태그 대신 또는 그 클래스 버전을 지정하는 데 사용할 수있는 버전 주석이있을 수 있으며이 주석은 자바 리플렉션 API (예 : Class.getAnnotations())를 통해 액세스 할 수 있습니다.

+4

하나 개의 작은주의하십시오'@ deprecated' JavaDoc 태그 ('@ Deprecated'라고하는 주석과 혼동하지 말 것)는 클래스 파일에 실제로 표시됩니다 (주석이 아닌 존재 만). 주석의 내용이 Java에서 컴파일 결과에 영향을 미치는 유일한 장소입니다. 실제로 불행한 –

+0

입니다. 도움이되는 정보를 주셔서 감사합니다 – Redandwhite

1

이미 언급했듯이 해당 정보를 얻을 수는 없습니다.

다른 해결책은 Implementation-Version/Specification-Version property of the package을 읽는 것입니다.

해당 값은 jar 파일의 MANIFEST.MF 파일에서 정의 할 수 있습니다. 그것이 정의되면, 그 jar 파일에 포함 된 모든 패키지에 대해 질의 될 수 있습니다.

그래서 당신은 클래스 org.example.MyClass과는 MANIFEST.MF 파일에 관련 항목이에서 오는 병이있는 경우, 다음과 같이 버전을 얻을 수 있습니다 :

Class<?> clazz = org.example.MyClass.class 
Package pkg = clazz.getPackage(); 
String version = pkg.getImplementationVersion(); 
+0

이것은 내가 무엇을 찾고 있느냐에 달려있는 것 같습니다. Netbeans에서 MANIFEST.MF 파일에 대한 VERSION 값을 설정하는 방법은 무엇입니까? – Redandwhite

관련 문제