是否有一個工具用於將庫或JAR文件的內容轉儲到控制檯?如何將Java庫的內容轉儲到控制檯?
我正在尋找適用於Windows本機模式庫的DUMPBIN /SYMBOLS
的Java對應部分。使用C#和.NET的其餘部分,有許多可視化工具,如.NET Reflector和內置於Visual Studio中的對象瀏覽器。所有功能於一切,我更喜歡命令行工具,但我會很感激任何工程:)
(我剛開始使用Java和Scala的Windows上。)
是否有一個工具用於將庫或JAR文件的內容轉儲到控制檯?如何將Java庫的內容轉儲到控制檯?
我正在尋找適用於Windows本機模式庫的DUMPBIN /SYMBOLS
的Java對應部分。使用C#和.NET的其餘部分,有許多可視化工具,如.NET Reflector和內置於Visual Studio中的對象瀏覽器。所有功能於一切,我更喜歡命令行工具,但我會很感激任何工程:)
(我剛開始使用Java和Scala的Windows上。)
您可以解包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文檔的情況下使用它們。你的第一步應該幾乎總是試圖找到文檔,然後看看它們。
還有Scala REPL中的':javap -v
謝謝!是的,我希望列表只是提醒拼寫的確切名稱,並對其進行粗略概述。正如當我cd或推到某個目錄時,我經常去「ls -l」或「dir」。結果並沒有告訴我這些文件中有什麼 - 它沒有語義深度,它只是提醒我有什麼,並給我一個總體概述框架,以更新我對整個內容如何配合的記憶。 –
你要找的命令是:
jar tf <jarfilename>
如果你知道類名:
$ javap -classpath jarfile some.package.in.that.jarfile.ClassName
您也可以使其通過迭代「腳本IZE」它jar文件中的所有類,併爲每個類運行javap
如前所述,JAR文件是ZIP文件,可以用相同的方式提取。
要瀏覽JAR文件中的類,我建議您使用IDE。將JAR文件作爲庫依賴項添加到您的項目中,然後您應該能夠瀏覽類和方法。
如何獲取JAR文件的源代碼(如果可能的話)?
究竟要完成什麼?也許這是我在JVM和腳本語言的隔離,但爲什麼你需要這樣做呢? –
出於同樣的原因,當您轉到目錄時,您會說「dir」或「ls -l」。看看裏面有什麼,感受一下事物如何融合在一起,看看你可能沒有注意到的一些名字(偶然發現),發現,概述,指導探索。出於同樣的原因,當你到達那裏時你會看到一個城市的地圖,儘管它沒有告訴你有關建築物的每一個細節。 –