2015-10-02 32 views
4

我一直在試圖找出這一點,沒有提出正確的方法。我通過this question,我已經嘗試過,但它不工作很正確..使用IntelliJ EAP 142.4675.3正確的方法來配置IntelliJ使用反編譯罐子的源代碼

我想要做的是調試使用jar的junit測試(擴展提供程序類)文件我已經放入JAVA_HOME \ jre \ lib \ ext。我希望那個jar也是可調試的。

問題是,如果我將源目錄作爲jar的源代碼,那麼在堆棧跟蹤中,當我單擊指定文件(包含我希望查看的方法)時,IntelliJ會要求我在兩個相同的文件,大概是因爲它知道源代碼(它在我的項目中的一個模塊中),它也通過我添加的jar源路徑告訴源代碼。

我試着將provider.jar添加到項目模塊依賴性選項卡,這導致intellij無法結束。恢復到jre \ lib \ ext中,並在Platform Settings-> SDKs-> 1.8-> Sourcepath選項卡中添加模塊源路徑。這可以讓intellij進入jar的.java文件,而不是.class文件,但是,當它這樣做時,我現在在代碼窗口的頂部看到一個標題爲「可用於類xxx的替代源」的橫幅和在RHS上有一個組合框,模塊名稱列出了兩次(在最新的EAP中,它實際上列出了模塊和jar [與模塊同名,帶有.jar])。而且,如前所述,當我單擊堆棧跟蹤中的一個文件時,IDE會詢問我想要編輯哪個(同一個)文件。

顯然,有一些不太正確的..我錯過了什麼?我覺得奇怪的是,ide在進入jar之前不會打開源代碼,直到我將上面的代碼附加到代碼中,但是當我這樣做時,它會看到它兩次。

+0

https://www.jetbrains.com/idea/help/dependencies-tab.html值得一讀,我想。另請參閱https://www.jetbrains.com/idea/help/configuring-module-dependencies-and-libraries.html –

+0

第一個鏈接幾乎總結了q鏈接中的答案...第二個,真的偷東西。我從jre \ lib \ ext目錄中刪除了jar,然後通過運行時範圍的依賴關係選項卡添加了一個副本。現在,在運行junit測試時,intellij抱怨它無法驗證出\ production \ blahblah中的jar。 – Jon

回答

0

因此,讓我們從頭開始:

  • 文件>新建項目,選擇的「Java模塊」,填寫表格:capture1
  • 繞道的形式詢問項目的種類(Web應用程序等),通過點擊「完成」
  • 你現在有一個src DIR項目:capture2
  • 右鍵單擊32910506目錄,選擇「新建」,然後「目錄」,並創建一個新的目錄名爲lib。
  • 拖放您2罐(來源和代碼)到這個目錄(我將使用common-lang在這個例子中),謹防複製,不動: capture3
  • 現在右擊src,選擇「新建」, 「Java類」,命名爲Appcapture4
  • 右鍵點擊你的 「代碼罐子」,然後選擇 「添加爲庫」: 在Appcapture5
  • psvm然後打TAB獲得main並填寫這樣的: capture6
  • 右鍵點擊你的「代碼罐子」,然後選擇「打開庫設置」: capture7
  • 點擊「+」,然後選擇「附加文件或目錄」,選擇你的「源罐子「: ​​
  • 現在,如果你按Ctrl +點擊random的應用程序,你應該結束了該方法來源: capture9
  • 把一個破發點中random方法:

capture10

  • 現在右擊App,選擇 「調試App.main()」,你應該結束了以前的斷點: capture11 capture12

使用:linux下的idea 12.1.6