idea怎么導(dǎo)入Java文件并運行?
通常一個團隊中可能有人用eclipse,有人用intelliJ,那么經(jīng)常會出現(xiàn)需要導(dǎo)入別人用eclipse建好的web項目。而IntelliJ提供了多種項目類型的導(dǎo)入方式,其中就有eclipse。
在初始窗口中點擊Import Project,在文件樹中選擇你的項目,打開導(dǎo)入窗口,選擇Eclipse選項,點擊下一步
選擇你的項目名稱,可以選擇下方的Open Project Structure after import,會在導(dǎo)入完成后,直接打開項目設(shè)置窗口;若不選,可以后面手動打開,區(qū)別不大。下一步。
選擇jdk,我這里已經(jīng)配置好。若沒有,點擊左側(cè)+號,配置jdk信息。然后選擇一項你需要的jdk版本,點擊完成。
導(dǎo)入就完成了,這時候主窗口就打開了,左側(cè)是項目目錄,右側(cè)是編輯區(qū)域。下圖是目錄樹結(jié)構(gòu),發(fā)現(xiàn)已經(jīng)生成了.idea目錄和web_test.iml文件,這些是idea的IDE依賴文件。
若是前面選擇了Open Project Structure after import,此時會自動打開下圖窗口,若是沒有選擇,那么鼠標點擊項目名稱后,按F4打開。此時我們看到highlight部分是選擇的jdk版本,下面是默認的編譯輸出路徑,但是這個暫時是沒用的,后面會被覆蓋掉,所以不用管它。
左側(cè)選擇下一個菜單,Modules,這是idea的概念,project下面包含了Modules。這里插一句,有很多人會對這個概念很迷糊甚至不齒,但這個概念的確是正確的,它是來自于maven的思想,如果你看到過一些大型開源軟件,開源nosql的源碼就知道,一個project下面會分很多模塊開發(fā)。但是對于常規(guī)的java web來說,不用管那么多,就理解為一個project就是一個module,兩者合二為一就行。
這個菜單下,首先點擊右側(cè)三個橫向標簽頁Dependencies,看下圖,底下顯示了3 errors found,另外我手賤去畫了幾條高亮,其實這些高亮處都是紅字,說明在idea里是不存在的。包括SDK一欄,和下面兩個jar包,都是從eclipse依賴文件中讀出的,因此全部刪掉。
然后選擇三個橫向標簽頁的Paths,會看到highlight處,這里就是我說的覆蓋掉前面的編譯輸出路徑,當(dāng)然,使用默認就可以,不需要改動。會將class文件放到src同級的build目錄下。
三個標簽頁的第一個Sources如下圖,沒有需要修改的,這里主要定義了幾個目錄的角色,通過顏色標識,比如src默認定義為Sources,其他暫時都沒有角色。而如果項目是用maven構(gòu)建的,那么Sources,Tests,Resources和Test Resources就都有對應(yīng)的目錄了??梢钥闯?,idea很大程度上都是依靠于maven的思想,或者說它底層很多地方就是靠maven來運行的。而這幾個不同的目錄角色,各有一些獨有的特性,如果不去搞清楚也不要緊。因為這些目錄,對于eclipse來講,都是classpath一個角色。
接著,選擇左側(cè)Facets菜單,這個概念在eclipse里也是有的,就是標明項目是由哪些組件構(gòu)成的,如web,spring,strtus,hibernate等。點擊+號,進行選擇,這里選擇web。
點擊后,會發(fā)生有趣的事情,左側(cè)菜單會跳轉(zhuǎn)到Modules,而右側(cè),展現(xiàn)出web配置相關(guān)的表單。關(guān)于左側(cè)的跳轉(zhuǎn),你在配置萬Facets后會發(fā)現(xiàn),這兩個菜單項中都會存在這些配置,web,spring等等。我并不是很理解為什么,猜測和多模塊的思想有關(guān)。
右側(cè)配置項中,兩處高亮,上面是web.xml路徑,下面是web根目錄。這里是默認路徑,與我們不符,需要手動修改。因為idea默認web根目錄名字為web,而不是eclipse的WebContent,像MyEclipse是WebRoot。
修改好后,看到右下角,有一個按鈕,Create Artifact,這又是maven地概念了,這個Artifact指的就是將要投到tomcat里去跑的那個目錄。只不過它不會真的拷貝到tomcat安裝目錄下。只是會讓tomcat來尋找這個路徑,運行目錄下面的程序。
點擊后,左側(cè)跳到Artifact菜單,右側(cè)展現(xiàn)配置表單。這個過程與你手動切換到Artifact菜單,然后點擊+號選擇打包類型的效果是一樣的。剛才那個按鈕是idea的智能化行為。
表單中,name,隨便取,可以不用修改。Type,Web Application: Exploded是web開發(fā)的常用類型,無需修改。Output directory,輸出路徑就是這個Artifact的目錄所在,idea會將所有需要的資源,包括class,lib,web目錄等等以tomcat能夠識別的目錄結(jié)構(gòu)拷貝到這里。而tomcat會直接使用這個目錄運行系統(tǒng)。默認是與src平級的out目錄下。一般也不用修改。
右側(cè)的區(qū)域Available Elements中,最有可能出現(xiàn)的就是lib目錄下的jar包,這里測試環(huán)境我忘了準備。但是一般情況下會列出一個jar包列表。這時候會有紅線提示,要你把jar包加入左側(cè)的輸入目錄結(jié)構(gòu)中。那么右鍵菜單中選擇Put into Output Root。這樣錯誤提示會消失。但是!!我這里要提一下,這個步驟其實現(xiàn)在的場景下是無效的,或者說這個錯誤提示完全不用管它。因為你會發(fā)現(xiàn)你即使不把jar包導(dǎo)入左邊,運行時,lib下的所有jar包依然會拷貝到artifact目錄下。但這不是idea的bug,是有原因的,這里就不說了。
點擊OK就可以了,這樣項目配置就算完成了。然后是配置tomcat。
上部菜單欄會有一個小三角,下拉后選擇Edit Configuration
彈出窗口后,按圖示選擇。
選擇后,打開tomcat配置表單。
name,隨便取,我一般取tomcat5/6/7。Application Server,選擇一個以關(guān)聯(lián)的tomcat版本,若沒有關(guān)聯(lián)過,點擊右側(cè)Configure做關(guān)聯(lián)。After launch可以勾選,在start/restart tomcat后會自動打開瀏覽器并訪問指定url。右下角有一個和session相關(guān)的勾選框,可以勾選,作用是restart以后,前面session中的值可以自動設(shè)置,就不用再次登陸啦~~
切換到第二個標簽頁deployment,點擊右側(cè)+號,選擇第一項artifact,選擇剛才創(chuàng)建的那個artifact,
右側(cè)的Application context作用是你的url訪問根路徑,默認是/,就是說你的url中不包含我們以往所習(xí)慣的項目名,比如若是在web根下有index.jsp,那么路徑就是http://127.0.0.1:8080/index.jps,而不是http://127.0.0.1:8080/web_test/index.jsp,當(dāng)然,出于對傳統(tǒng)的習(xí)慣,這一項你可以改成/web_test
點擊OK,tomcat配置就結(jié)束了,然后就可以開始運行tomcat了。界面上部會有tomcat圖標,右方有run, debug圖標,點擊即開始運行。浮出run/debug Panel。
如果log一切正常,就說明運行起來了。在前面的過程中,存在一些配置,對開發(fā)過程還是有幫助的,但是與運行起來不影響,就不一一舉例說明了。
推薦教程: 《java教程》