실행 중인 JAR 파일의 Manifest 얻기 코드

String jarFileName = System.getProperty("java.class.path")
.split(System.getProperty("path.separator"))[0];
JarFile jar = new JarFile(jarFileName);
Manifest mf = jar.getManifest();
Attributes attrs = mf.getMainAttributes();
BANNER = "Kraken (version " + attrs.getValue("Kraken-Version") + ")";
maven-assembly-plugin에서 아래처럼 해놓고 빌드해서 얻어다쓰면 pom 파일과 일치하는 버전을 런타임에서 뿌릴 수 있다.
<manifestEntries>
<Premain-Class>org.krakenapps.main.Kraken</Premain-Class>
<Kraken-Version>${pom.version}</Kraken-Version>
</manifestEntries>
수작업으로 크라켄 코어 배너를 매번 고치기 귀찮았다는 뭐 그런 시시한 얘기..

maven 라이브러리는 싹 빼고 artifact dependency 해석 기능은 잘 쓰지도 않는거 날려버렸고 이제 3MB대 까지 크기를 줄이긴 했는데 hsqldb 의존적인 녀석들 설정을 PreferencesService 기반으로 다 갈아버려야 2MB쯤까지 경량화 할 수 있을듯..

안드로이드에 크라켄 올려보고 싶은데~~

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://www.xeraph.com/tb/5261862 [도움말]

덧글

  • Kevin 2010/05/05 22:21 # 삭제 답글

    전 설정 properties 파일에 버전정보 넣어놓고,
    개발 버전하고 유저가 볼수 있는 실제 화면에 표시되는 버전을
    좀 다르게 했는데, 이방법이 훨씬 좋아 보입니다. :)
  • xeraph 2010/05/05 22:28 #

    JAR 파일 하나 달랑 던지고 배포하다보니.. ㅋ
댓글 입력 영역