什麼?Eclipse項目導入到idea不能運行?那你可能漏了點東西!

1、事情通過

自從用了Idea後,Eclipse在我這裏已經成爲了過去,已經起碼有三年沒有再用過Eclipse了。此次是拿到Eclipse的項目後,導入到Idea中出了點問題。
剛開始是直接從svn拿下來,直接導入到Idea中,沒有問題。可是由於項目結構太亂,就刪除了一些不相關的目錄文件,再上傳到svn。而後其餘人拿到代碼後跑不了了!而後我本身再從新checkout後發現,也是這個錯誤!java

image.png

爲何會找不到類呢?jar包全都在啊?idea中也將目錄中的jar包都引進了啊?eclipse

2、操做還原

必定是我刪除了某個相關文件致使的問題,所以我就將項目回滾到刪除相關文件以前的版本,再按以前的刪除步驟逐步測試,最後發現了這兩個小東西:
image.pngide

???
這不是導入到項目中後,就能夠刪掉的嗎?以前刪了也沒有事啊,怎麼如今就不行了呢?svn

3、緣由

其實以前的這個項目就是用Eclipse構建的。.project主要是描述工程的基本信息:工具

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
   <name>MyServer</name>
   <buildSpec>
      <buildCommand>
         <name>org.eclipse.jdt.core.javabuilder</name>
      </buildCommand>
   </buildSpec>
   <natures>
      <nature>org.eclipse.jdt.core.javanature</nature>
   </natures>
</projectDescription>

name是項目名,natures運行時須要的額外Eclipse插件,及其buildSpec具體加載方式信息。開發工具

再看看.classpath:測試

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="admin"/>
    <classpathentry kind="lib" path="libs/commons-io-1.4.jar"/>
</classpath>

kind="src" : 源文件的具體位置
kind="lib" : 工程的library的具體位置信息ui

看到這裏就應該能知道爲何會出現ClassNotFoundException了,由於以前在Eclipse中,就是依靠它來指向jar包的位置的。idea

那爲何以前沒有問題而刪除後就有問題了呢?由於我刪除後提交了代碼,致使svn上的項目少了這兩個Eclipse文件。爲何我在本地能跑項目,其餘人就不能夠呢?spa

由於我從svn上把項目拉下來,導入到idea的時候,會自動根據這兩個文件構建出idea本身的iml工程配置文件,來指向那些jar包路徑。即便我刪除了.classpath文件,可是我本地已經有了iml文件,因此項目能跑起來。我刪除後svn上就沒有了,其餘人拉代碼下來,不能生成Idea的iml配置文件,因此就跑不了了。

咱們真的對咱們使用的開發工具熟悉嗎 ?問題雖然簡單,可是隻有爬過這一個個的坑,咱們才能逐漸的成長爲一個 "老司機" ~ ~

相關文章
相關標籤/搜索