2017-09-25 70 views
0

我一直在使用Eclipse一段時間,並且無法理解IntelliJ中第一個項目的情況。我已閱讀文檔,並搜索了其他問題,但我似乎仍無法掌握它。我認爲我的項目結構有問題。這是我的結構目前的樣子;在IntelliJ中創建Java包

IntelliJ Project Structure

我試圖運行JavaForLoop類,但每當我這樣做,編譯因爲我在StringMethodsstrings包的錯誤失敗。我的問題是爲什麼如果兩個類都在單獨的包中,會阻止編譯?兩個班級都不使用另一個,他們都有適當的package聲明聲明。在Eclipse中具有類似的結構,這將起作用。我應該使用不同的項目結構嗎?

回答

1

默認情況下IDEA增加了建立其發射前執行的配置,包括以下步驟(取從here開始):

  • 在源模塊的源路徑中編譯源代碼並將結果放到輸出路徑。
  • 在模塊的測試路徑中編譯源代碼並將結果放入測試輸出路徑。
  • 在輸出路徑中創建資源文件的副本。
  • 消息工具窗口中的報告問題。

enter image description here

檢查,如果它在編輯配置屏幕的情況下,如果是這樣,將其刪除。

+0

這樣做。謝謝。那麼默認情況下,項目所有模塊中的所有文件都正在編譯? – BlaqICE

+0

@BlaqICE,是的,我已經更新了答案。 – streetturtle

0

要使用不同包中的類,必須向該類聲明一個導入語句。

在你JavaForLoop.java添加類語句之前的進口(和包聲明後,其中的情況下)

//package ... 
import strings.StringMethods; 
//public class JavaForLoop { and the rest of the code 
0

Intellij使用常規的javac,如果您在代碼中的任何位置有錯誤,將無法編譯。

Eclipse有它自己的編譯器,它允許編譯甚至運行有編譯錯誤的代碼,如果運行有錯誤的代碼的任何部分,將導致運行時異常。這使您可以運行代碼的部分代碼,即使其他代碼段失敗。

簡單的解決方案是解決您的編譯錯誤。你也可以使用eclipse編譯器和Intellij,但是我從來沒有這樣做過,所以我不能評論它的工作效果。