2016-06-01 78 views
1

有沒有辦法調試通過Eclipse Equinox啓動的Java應用程序? 與C#中的「.net反射器」類似。 我們有一個多年前由內部團隊開發的大型程序,我們必須瞭解它是如何工作的,以便我們可以用另一種語言重新使用它。 問題是我們還沒有任何sorce代碼文件(一切都丟失了)。調試已編譯的Java Equinox程序

眼下應用程序的目錄包含: - 迪爾「配置」 - 迪爾「一體化」 - 迪爾「插件」 - 迪爾「工具」 - 目錄「工作區」 - starter.exe(帶eclipse logo as icon) - starter.ini - startup.jar

我真的希望有一種方法來檢查應用程序的工作方式。

謝謝:)

+1

我覺得一個java反編譯器是你需要的,看看[this](http://www.thecrazyprogrammer.com/2015/07/5-best-java-decompilers.html) – niceman

+0

@niceman我有已經嘗試jd-gui,但它不適用於使用equinox的應用程序(該程序從exe開始)。此外,它不允許我調試附加到正在運行的exe/jar – titanicsnake

+0

java反編譯器需要.class文件不.exe(它們可能接受.jar文件,因爲jar文件只是一個包含.class文件的存檔),如果jd- gui不接受jar文件,將其解壓縮(右鍵單擊 - > Extract)以獲取.class文件。 – niceman

回答

0

看起來我設法解決我的問題。在這裏我做了什麼:

  • 下載Eclipse的火星(4.5.2)
  • 在Eclipse中,我選擇 「幫助」 - > 「安裝新軟件」,並補充了存放點 「mchr3k - http://mchr3k-eclipse.appspot.com/」。
  • 從這裏我已經下載了「Java反編譯器Eclipse插件」
  • 創建一個新的臨時java項目並添加了所有.jar我想調試到項目的構建路徑。
  • 在我想調試的應用程序的目錄中包含的「launcher.ini」中添加了這一行:「-Xdebug -Xrunjdwp:transport = dt_socket,address = 127.0.0.1:8888,server = y,suspend = n 「
  • 開始了‘遠程調試’從Eclipse的

通過這樣做,我可以在Eclipse調試器連接到我的應用程序,並使用decompild源代碼。