使用IDEA遇到的问题记录

人可以做他想做的,但不能要他想要的

记录在使用idea的过程中遇到的问题

比如

  • 配置环境遇到的问题
  • 导入jar包
  • 依赖
  • maven
  • Tomcat
  • jdk和jar包版本的问题

将会比较随意的记录

post4

配置环境

说到底原本最初是用idea,后来实习公司又要用eclipse,不怎么熟悉这个开发工具,本来就艰难,jdk就用一开始的1.8版本jdk,结果按照公司要求用回jdk1.7和Tomcat1.7的时候,eclipse就无法打开了。
因为photon不支持1.8以下的版本。果断回头idea。

  1. 关于那个新建项目以后的文件目录格式,可以创建后自己修改。不用太纠结位置。
  2. 在创建项目以后,可以再创建模块,一个模块就相当于原来eclipse里面的项目。
  3. 在idea里面移除模块以后,不会删除本地硬盘里的文件,如果需要再导入这个模块进入项目里面的话,就找到 xxxx.iml文件,然后导入就会自动加载原来的那个模块了。

  4. 在运行的过程中,试过出现以下报错

1
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist

最后是把applicationContext.xml放入resources文件夹里才成功。
包括什么log4j.properties等这类型的文件都是要放进去才能生效。


导入jar包

要注意框架的版本,因为不同版本,可能jar包就取消了,或者集合在一起了,这个必须得注意。


配置依赖

大概就是maven添加的依赖,在配置到tomcat上的时候,没有关联到jar包,导致服务器 一直出错,如果碰到与maven和Tomcat相关的报错,可以考虑下面的解决方法。

IDEA: 遇到问题Error during artifact deployment. See server log for details.
详细的报错是

1
2
严重: Exception starting filter struts2
java.lang.ClassNotFoundException: prg.apache.struts2.dispatcher.FilterDispatcher

虽然不太懂原因,但是解决方法是打开项目结构,然后在Artifacts上面找到报错模块的地方,接着在output Layout找到WEB-INF文件夹,创建一个lib文件夹,然后右键文件夹添加副本,选择库文件,选择需要的jar包文件,问题就解决了。


maven

在配置好系统环境变量以后
在idea里的setting里设置maven的东西
比如默认读取setting.xml的位置和仓库的位置
因为idea自带的maven和我们自己安装位置的会不同

  1. 新建的时候就对着模块右键,选择添加框架支持
  2. 在里面找到maven然后直接新建就行。
  3. 创建pom.xml后好像会提示更新目录什么的,让idea来完成就好
  4. 默认的pom.xml里面需要我们自己去添加依赖,但是文件里会少了一些代码

     <dependencies>    
       #中间这里把maven依赖网站上面的配置自己找下来,复制上去就行
    </dependencies>
    
  5. 如果要移除依赖的话,直接删除pom.xml就可以了,同时idea会自动调整目录结构的

  6. 使用过程中,如果发现项目没有添加依赖,那么在项目结构中,找到这个项目的依赖,然后删除重新导入。

maven的依赖查询网站 :http://mvnrepository.com/

在idea右侧的工具栏里是可以找到maven插件的,通过这个可以很快查看每个项目的依赖。


Tomcat

  1. tomcat1.7版本不支持Servlet3.0以上的版本
    然而idea创建web.xml的时候基本默认是4.0版本

  2. Servlet 3.1 部署描述符
    Java EE 7 XML schema, namespace is _http://xmlns.jcp.org/xml/ns/javaee/_

    1
    2
    3
    4
    5
    6
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1">
    </web-app>
  3. Servlet 3.0 部署描述符
    Java EE 6 XML schema, namespace is _http://java.sun.com/xml/ns/javaee_

1
2
3
4
5
6
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
</web-app>
  1. Servlet 2.5 部署描述符
    Java EE 5 XML schema, namespace is _http://java.sun.com/xml/ns/javaee_
1
2
3
4
5
6
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
</web-app>
  1. Servlet 2.4 部署描述符
    J2EE 1.4 XML schema, namespace is _http://java.sun.com/xml/ns/j2ee_
1
2
3
4
5
6
7
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Servlet 2.4 Web Application</display-name>
</web-app>
  1. Servlet 2.3 部署描述符
    J2EE 1.3 DTDs schema. This web.xml file is too old, highly recommend you to upgrade it.
    1
    2
    3
    4
    5
    6
    <!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <web-app>
    <display-name>Servlet 2.3 Web Application</display-name>
    </web-app>

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。


idea 快捷键

alt+鼠标左键 可以查看源代码

CTRL+shift+i 可以小窗口查看源代码—再加上CTRL+enter可以打开窗口

CTRL+shift+t 可以打开try catch等语句

sout

pvsm

ctrl+alt+j 添加环绕

ctrl+j 自动代码提示

ctrl+y 删除行

ctrl+d 复制当前行

ctrl+shilf+12345..添加标签
ctrl+1234…跳到标签

alt+鼠标选区可以实现批量修改,要对齐的代码才好用

ctrl+左右键 代码里块选择

alt+左右键,代码文件切换

alt+上下键,方法之间选择

ctrl+alt+enter空出所在行


关于module
一个模块是一个独立的功能单元,可以被编译,运行,测试和调试独立
module可以被分组
module的dependencies的面板里的lib包顺序是依赖顺序,不能乱排序, 容易引起包冲突


使用svn的时候,一开始没下载插件,然后就自己下载
装好svn插件以后,在设置里面的SVN不要修改配置,装好是怎样的就怎样,不要弄
然后在菜单file里选择new,project form version control
在里面输入连接地址,找到自己的开发文档,把代码弄下来就好,保存开发文档的文件夹需要为空,不然无法check out下来。
日常使用的时候先更新,然后提交之前也先更新,免得有冲突

Just for fun!
------------- 文章已经到尾 -------------