0
是否有一個ant任務允許我查看某個jar文件並找出jar中的類文件的哪個Java版本被編譯了?使用ant在jar文件中查找java版本的類文件?
是否有一個ant任務允許我查看某個jar文件並找出jar中的類文件的哪個Java版本被編譯了?使用ant在jar文件中查找java版本的類文件?
你將不得不寫一個。你可以用現有的任務來完成它,但它會變得很醜 - 這實際上並不是螞蟻所能發現的。
你可以解壓罐子,然後或者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來取出版本。
是啊,這可能是它!謝謝。 – casolorz
我很好奇......你爲什麼要這麼做? – thekbb
我們有一個部署ant任務。作爲部署的一部分,有一堆jar文件。有時候取決於哪個開發者編譯它們,jar是用錯誤的版本編譯的。我們已經更正了這些jar的構建ant腳本,但是我想添加一個僅用於檢查部署以警告任何jar沒有針對所需的jvm版本。 – casolorz