2011-08-24 74 views
3

是否有一個工具用於將庫或JAR文件的內容轉儲到控制檯?如何將Java庫的內容轉儲到控制檯?

我正在尋找適用於Windows本機模式庫的DUMPBIN /SYMBOLS的Java對應部分。使用C#和.NET的其餘部分,有許多可視化工具,如.NET Reflector和內置於Visual Studio中的對象瀏覽器。所有功能於一切,我更喜歡命令行工具,但我會很感激任何工程:)

(我剛開始使用Java和Scala的Windows上。)

+0

究竟要完成什麼?也許這是我在JVM和腳本語言的隔離,但爲什麼你需要這樣做呢? –

+0

出於同樣的原因,當您轉到目錄時,您會說「dir」或「ls -l」。看看裏面有什麼,感受一下事物如何融合在一起,看看你可能沒有注意到的一些名字(偶然發現),發現,概述,指導探索。出於同樣的原因,當你到達那裏時你會看到一個城市的地圖,儘管它沒有告訴你有關建築物的每一個細節。 –

回答

6

您可以解包JAR文件(jar xf my.jar)查看內容;如果您想在您的代碼中執行此操作,則可以使用java.util.jar中的工具來處理JAR文件。

或者,如果您知道包層次結構的一部分,則可以在Scala REPL中鍵入其中的一部分,然後點擊選項卡以獲取有效完成列表。例如:

scala> java.util.jar. <-- hit tab here 
Attributes    JarEntry    JarException    
JarFile     JarInputStream   JarOutputStream   
JarVerifier    JavaUtilJarAccessImpl Manifest     
Pack200     

但是,很難弄清楚如何在沒有API文檔的情況下使用它們。你的第一步應該幾乎總是試圖找到文檔,然後看看它們。

+1

還有Scala REPL中的':javap -v '命令,它顯示了命名類的JVM字節碼。 –

+0

謝謝!是的,我希望列表只是提醒拼寫的確切名稱,並對其進行粗略概述。正如當我cd或推到某個目錄時,我經常去「ls -l」或「dir」。結果並沒有告訴我這些文件中有什麼 - 它沒有語義深度,它只是提醒我有什麼,並給我一個總體概述框架,以更新我對整個內容如何配合的記憶。 –

1

另請注意,JAR文件僅僅是一個壓縮文件,因此任何ZIP實用程序都可以。而且大多數IDE提供探索添加到項目中的JAR庫(例如Eclipse)。

10

你要找的命令是:

jar tf <jarfilename>

2

如果你知道類名:

$ javap -classpath jarfile some.package.in.that.jarfile.ClassName 

您也可以使其通過迭代「腳本IZE」它jar文件中的所有類,併爲每個類運行javap

0

如前所述,JAR文件是ZIP文件,可以用相同的方式提取。

要瀏覽JAR文件中的類,我建議您使用IDE。將JAR文件作爲庫依賴項添加到您的項目中,然後您應該能夠瀏覽類和方法。

如何獲取JAR文件的源代碼(如果可能的話)?

相關問題