一顿操作,我成功将Eclipse中成功运行的项目导入Idea并成功运行!

以前一直有疑惑,就是eclipse中的项目能不能再idea中运行,简单尝试只是把项目导入idea中无法运行,报错一大堆,以为这两个工具中项目是不能共用的。其实不然,不论你使用什么工具,都是工具中的配置问题。在eclipse中的配置有的不能在idea中使用,那你就要改成idea设置,有时,看看报错信息也是成功的关键。始终相信,idea只是工具,eclipse也是,一个完整的项目,能在在命令行里跑起来,也就能借助对应工具在工具中跑起来。那么,我是如何将一个能在eclipse上完整运行的简单web项目导入到idea中运行的呢?

一.让项目在eclipse中跑起来

i.将项目导入eclipse中

File->Import->Exisiting Projects into Workspace

导入进来有一个红叉

 

和其他项目对比,这个项目少了JRE System Library

 右键项目工程-->Properties-->java build path-->libraries-->add library-->JRE System Library

 

 这里是问你使用什么JRE,是执行环境,还是候选JRE,还是工作区默认JRE,我这里已经设置好了工作区默认JRE,所以不用设置什么。如果你没有设置,可以选择其他试试。

加载进来我们可以下拉看到我们的jar包都可以出来

接着把unbound的JRE移除(remove),apply and close

我们发现我们的小红叉并没有消除哈,我们不管,直接run as ,Run on a server, 看看会报什么错

看样子是Tomcat配置除了问题

继续右键项目Properties,找到Server

Apply and Close 后还是不行

运行一个Java报错

把11改成1.8

 还是不行,再改

这时,项目上的小红叉消失了

项目可以跑起来了,只是里面没有什么内容。我们可以加入一些内容,我这里就先加一个index.jsp和Refresh.java(这是一个servlet)

先加一个index.jsp,再WebContent目录下新建一个JSP文件

 eclipse提示找不到这个类,我们知道,servlet.http.HttpServlet是在Tomcat中,我们把jar包导入项目,还是在Properties中的Java build path的右边栏点击Add External(外部的) jars,我们导入的包在Tomcat的安装目录下的lib文件夹的servlet-api.jar,在项目的Referenced Libraries中可以看到我们引入的jar包。右键项目名,Refresh一下。

index.jsp内容:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%out.print("Hello World!"); %>
<%out.print("This is my first JSP!"); %>
</body>
</html>

重新run一下可以成功

可以说,只要项目不报错,基本上都可以跑起来。这里面我们看到的项目都是在eclipse内部,怎么在我们自己的浏览器上看到结果呢?我们在最上面一栏Windows-->Web browser-->0是eclipse内置浏览器,其他是外部浏览器,我们选择1就行 

 现在,我们新建一个servlet试试看。servlet就是运行在服务器上的Java程序,也是.java文件,当当被请求时,servlet容器就是把servelt编译成.class文件执行。

在src目录(有的项目是src/main/java,应该是设置的问题)下新建一个名为Refresh的servlet

package servlet;
// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
 
// 扩展 HttpServlet 类
public class Refresh extends HttpServlet {
 
  // 处理 GET 方法请求的方法
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置刷新自动加载时间为 5 秒
      response.setIntHeader("Refresh", 5);
 
      response.setCharacterEncoding("utf-8");
 
      // 设置响应内容类型
      response.setContentType("text/html");
 
      // Get current time
      Calendar calendar = new GregorianCalendar();
      String am_pm;
      int hour = calendar.get(Calendar.HOUR);
      int minute = calendar.get(Calendar.MINUTE);
      int second = calendar.get(Calendar.SECOND);
      if(calendar.get(Calendar.AM_PM) == 0)
        am_pm = "AM";
      else
        am_pm = "PM";
 
      String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
    
      PrintWriter out = response.getWriter();
      String title = "自动刷新 Header 设置";
      String docType =
      "<!doctype html public \"-//w3c//dtd html 4.0 " +       "transitional//en\">\n";
      out.println(docType +
        "<html>\n" +
        "<head><title>" + title + "</title></head>\n"+
        "<body bgcolor=\"#f0f0f0\">\n" +
        "<h1 align=\"center\">" + title + "</h1>\n" +
        "<p>当前时间是:" + CT + "</p>\n");
  }
  // 处理 POST 方法请求的方法
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
     doGet(request, response);
  }
}

 接下来是web.xml配置,发现我们这个project根本没有web.xml,我们可以新建一个。注意要在WEB-INF下新建

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>WebTest</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

      <servlet>
        <servlet-name>Refresh</servlet-name>
        <servlet-class>servlet.Refresh</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>Refresh</servlet-name>
        <url-pattern>/Refresh</url-pattern>
    </servlet-mapping>
</web-app>

 再次run on a server然后补全URL可以看到servlet也跑起来了

二.让项目在idea中跑起来

上面的内容是让项目在eclipse中运行起来,但是现在的idea比eclipse更加智能,怎么把一个已有的项目从eclipse上转移到idea上呢?

idea中导入项目没找到复制项目到ideaworkspace 的选项,那我们就手动复制,将eclipse下的项目复制到idae的工作区中。

依次点击File-->New-->Project From Existing Source-->选择项目路径-->Import project from external model中选择eclipse

 

一直next直到这一步,选择你本地JDK目录路径

报错了,没关系,我们接着设置,这个只是项目中的JDK命名和我们idea中本地JDK命名不同引起的。

 设置JDK版本

点击左上角的File-->Project Structure,点击左侧的Project,在Project SDK中选择1.8,在Project language level 中选择 8 。

注: 这个从File-->Project Structrue 和直接点击最右边的图标是同一个入口。

接着点击File --> Settings,在Build,Execution,Deployment下的Compiler下的Java Compiler,在Target bytecode version右边有一个+号,添加你的项目。

依赖导入 

点击File-->Project Structure,点击左侧的Modules

可以看到我们的JDK依赖名为JavaSE-1.8,下拉Module SDK选择我们在Idea中设置的本地JDK,并把红色的依赖全部移除(remove)。

然后点击+添加依赖,然后选择

找到你的lib包所在位置并选择它,然后点击ok。(如果你是Maven管理的项目,此步骤可跳过)

如果你的项目是web项目,则还需要手动定位web.xml。

同样的窗口,在左侧栏选择Facets→“+”→Web

选择你的项目名称

之后选中如图所示的路径,点击右侧图书按钮,在中间框中点击“...”来编辑web.xml的路径

因为IDEA的规范与Eclipse不一,web.xml的存放位置不一,所以此处需要手动找到导入的Eclipse项目的web.xml,否则IDEA识别不到。之后点击ok保存。

接着点击右下角的“Create Artifact”。

出现一个Problems

 我们在左侧找到Artifacts,点击右下角的fix,选择第二项。

配置服务器

File-->Settings,在搜索框中搜索servers,找到Application servers,点击右侧的+,选择Tomcat Server

选择两次Tomcat安装路径点击两次OK 

接着点击右上角的“Add configuration”。

点击左上角的+,选择Tomcat Server中的local,右侧Name处可任意命名。

点击右下角的fix

点击OK保存

 

 然后打开左上角File→Project Structure

artifact(人工制品)

如图所示选择Modules→tmanager(你的项目名)→“+”

选择之前配置好的tomcat版本,然后点击Add selected,点击ok保存。 

 

 到这里设置基本完成,可以试着运行了,只需点击右上角绿色的三角形。

报错了。

我们按照指示,同时按Alt+Shift+Enter,红色消失,再次运行。

Tomcat启动成功,不过网页是404不管怎么补全URL都不行。

这时观察项目结构

 

 发现有一个web目录和我们的WebContent目录,会不会是idea把web目录当成了内容输出了呢?

点开Project Structure,一通查找后发现,我在Facets中找到了这种映射关系

意思是web目录和Tomcat下的Root目录存在映射关系,我们修改项目的映射目录为:

双击左侧的Web Resource Directory修改

 

 改为我们的WebContent目录

当我们再次运行

 

 

发现上面的URL中,项目名称还跟了一串英文,如何把它改成项目名呢?

通过修改红色框内的内容

修改失败

这时想起这个设置可能和服务器配置有关,所以又打开了

 

 发现则合理确实有一个修改URL的地方

修改之后直接

 

把Tomcat移除后重新添加,然后点击fix后恢复正常

注:如果遇到端口占用可以手动在Tomcat安装目录bin下双击shotdown.bat关闭

按照之前的顺序,那么我可以先修改项目的名称,然后添加Tomcat服务器

 

 

 

 

 参考文章:https://jingyan.baidu.com/article/2a13832843c2e0464a134f9f.html

 

 

  • 7
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值