2013-10-07 32 views
0

是否有一個ant任務允許我查看某個jar文件並找出jar中的類文件的哪個Java版本被編譯了?使用ant在jar文件中查找java版本的類文件?

+0

我很好奇......你爲什麼要這麼做? – thekbb

+0

我們有一個部署ant任務。作爲部署的一部分,有一堆jar文件。有時候取決於哪個開發者編譯它們,jar是用錯誤的版本編譯的。我們已經更正了這些jar的構建ant腳本,但是我想添加一個僅用於檢查部署以警告任何jar沒有針對所需的jvm版本。 – casolorz

回答

0

你將不得不寫一個。你可以用現有的任務來完成它,但它會變得很醜 - 這實際上並不是螞蟻所能發現的。

你可以解壓罐子,然後或者EXEC出文件(UNIX機器一樣),你看這個人是51版(Java 7中)

$file MyClass.class 
MyClass.class; compiled Java class data, version 51.0 

,或者如果你正在使用你能窗使用javap -v

$javap -v MyClass.class 
Classfile 
MyClass.class 
    Last modified Sep 24, 2013; size 7317 bytes 
    MD5 checksum 73667731fe2ec6519b1c0c4676a96c70 
public class com.foo.MyClass 
    minor version: 0 
    major version: 51 

你會那麼必須使用使用replaceregex或一些醬找到主要版本。

爲了寫出一個小任務,你可以使用Apache的byte code engineering library來取出版本。

+0

是啊,這可能是它!謝謝。 – casolorz