2011-08-14 44 views
15

正如標題所述,我試圖在日食中使用javap,但在設置時遇到困難。我試圖使用run菜單中的external tools進行設置,但無法找到正確的Arguments:字符串以使其正常工作。基本上我需要一些能動態執行我打開的當前文件的東西。如何在Eclipse中使用javap?

回答

24

我使用下面的外部工具的配置來實現這一點:

enter image description here

${system_path:javap}用於定位在JDK的javap由Eclipse使用。您可以改爲使用javap的絕對路徑。

${project_loc}返回項目的絕對路徑。由於找不到要使用的預定義變量,因此使用這個名稱來查找資源的.class文件,這就是爲什麼javap運行在項目的目錄中而不是包含.class文件的目錄中的原因。

在傳遞給javap的參數:

  • bin是Eclipse項目的默認輸出文件夾。將其更改爲build/classes或項目使用的任何內容。請注意,該值相對於${project_loc};您可以改爲指定絕對路徑。
  • ${java_type_name}用於獲取選定的類名稱。

您可以在項目資源管理器視圖或項目導航器視圖中選擇Java文件,甚至在任何視圖中選擇Java類型,然後運行外部工具。注意 - 當你選擇一個方法,一個內部類等等,然後運行這個工具時,這種方法不能很好地工作,因爲它們不是自己的資源,導致${project_loc}將變爲空的場景。

+0

謝謝! – guest

+0

+1也更新了圖片,在'ClassName'之前放置'-c',因爲參數應該放在前面。希望你不要介意:) – Pshemo

2

你的問題是,javap需要類文件的路徑,但是當你選擇你的源文件時,你可以訪問eclipse變量${selected_resource_loc}包含java源代碼的路徑。據我所知,沒有包含類文件路徑的變量。

我認爲最簡單的方法是創建接受java文件路徑的自定義腳本,將java替換爲class,並將源文件夾替換爲bin文件夾。如果您正在使用linux,則可以使用命令sed輕鬆完成。如果你在窗口上,可以使用命令SET~來實現。請參閱幫助瞭解更多詳情。

祝你好運。

0

請修改Working Directory以匹配您的java項目輸出文件夾。就我而言,它看起來如下所示。

工作目錄:${workspace_loc:/Sample/bin}

於是我選擇了.class文件,並沒有任何問題執行javap

0

爲了反彙編Eclipse中當前選擇的.class文件,我在外部工具配置中使用以下arguments

這種方式bin文件夾的子包中的類也可以反彙編。輸出顯示在控制檯視圖中。

Oracle文檔javap parameters