我的eclipse是用的jdk1.8。为什么会报这个错?
1. eclipse 下载安装
这个就是最新版本就行,没啥特殊的,安装完毕,写个HelloWorld能跑就行
2. 安装配置运行jetty
下载最新版本jetty,解压缩就行
3. 安装eclipse的jetty插件
eclipse integration plugin,地址如下,各种安装,eclipse market,配置说明都在这里(最省事的安装就是从eclipse market页面直接拖拽install按钮到eclipse界面)
http://eclipse-jetty.github.io/installation.html
4. 配置jdk
因为要支持jsp,因此需要包含java编译器的运行时jre,普通的jre是不包含编译功能的,因此,需要在eclipse->window->preferences->java->installed jre中添加jdk目录下的jre
5. 新建web项目
这个跟着eclipse的向导走就行了,没啥特殊的(编译时的jre,用啥都无所谓)
6. 运行含有jsp的web项目
第一次,需要run configuration
左边的Jetty Webapp选择添加
第一个标签WebApp,按照自己项目的实际目录填写就好,默认是按照maven项目目录规范来的,如果找不到,会报错,run按钮无法点击
第三个标签Options,Use Jetty at path ,选择jetty解压缩目录就行,插件会自行检测jetty版本
第五个标签JRE,这里选择的是jetty运行时的jre,需要选择JDK的jre,alternate JRE选择前面设置的就可以
这些都设置好了之后,应该就可以run了
常见的错误
1. no jsp support,用了这个插件,一般不会遇到这个问题,jetty默认启动不支持jsp,需要配置,用了这个插件在Options标签可以随意选择,这个问题就不是问题了(No JSP support. Check that JSP jars are in lib/jsp and that the JSP option has been specified to start.jar)
2. full jdk required,这个是JRE标签里的jre/javaw,不是JDK里的,导致运行时出问题,这个可以通过console的输出和console的标题来检查(There is an error in invoking javac. A full JDK (not just JRE) is required)
3. ClassNotFound,这个问题有可能是因为缺少依赖的包,还有可能是因为你的Lib里jar太多了,比如混入了tomcat,jetty其它版本的jar,导致jetty初始化某些logger,servlet接口的时候,找的不是当前jetty里的实现,而是那些乱七八糟jar依赖的实现,然后找不到了。根据情况,先把乱七八糟的jar干掉,然后在一点点添加。