在Linux下,JAVA_HOME指向JRE时,tomcat启动后有一个项目报org.apache.jasper.JasperException: java.err.nojdk-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

在Linux下,JAVA_HOME指向JRE时,tomcat启动后有一个项目报org.apache.jasper.JasperException: java.err.nojdk

2016-06-15 11:38:21 2760 2

在Linux下,JAVA_HOME指向JRE时,tomcat启动后有一个项目报org.apache.jasper.JasperException: java.err.nojdk,其他项目可以启动,其实将JAVA_HOME指向JDK时是可以启动的,但运行环境是JRE不能随便更改,请问是项目中某个lib需要JDK才能运行还是一些其他什么问题?具体错误消息:

org.apache.jasper.JasperException: java.err.nojdk
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:89)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:375)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
    org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:198)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:364)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:433)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:476)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:366)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
取消 提交回答
全部回答(2)
  • kun坤
    2020-06-03 10:31:14

    项目里有jsp文件吧,jsp编译的时候需要使用jdk的###### jre只是运行时环境
    jdk才是项目真正需要的环境。
    如果你的jre都可以跑项目, 那用jdk一定可以跑, 可以直接将java_home指向jdk。
    如果你有各种担心的话也可以在报错项目对应的tomcat启动脚本里面单独指定java_home,
    export JAVA_HOME = /xx/xxxx/xxxxx
    export CLASSPATH=/xx/xx/xxxxx
    export PATH = /xxx/xxxx/xxxx:%PATH ######正解,把JAVA_HOME JRE_HOME 环境变量设置到CLASSPATH中###### 你这种错误,一般都是模板编译出问题了,JRE是不等价与JDK环境的,主要区别就在于JDK环境有一些编译工具。一般来说,服务器只需要装了JRE就可以运行tomcat了,但也有例外。
    比如,HTTL 这个模板引擎,需要调用javac来编译模板为class文件,所以必须有JDK才能运行。如果没有JDK环境,也可以用JRE环境+javassist.jar 这个工具来代替javac编译模板为class文件。
    不少编译型的模板引擎都是这样的。JSP编译是否需要JDK,我也不太确定。
    如果你的环境确实不方便更改,可以在lib目录下加上javassist.jar试试。 ###### 用的是哪个版本的tomcat啊?
    起码从tomcat 5.5开始,就带有ecj-*.jar,里面带的就是eclipse的JDT编译器了。按道理,带有ecj的tomcat发布版,应该有可以在JRE中支持jsp等需要编译的webapp了。
    请把环境再说明清楚一些? ######7.0.27

    0 0
  • a123456678
    2019-07-17 19:39:01

    你这种错误,一般都是模板编译出问题了,JRE是不等价与JDK环境的,主要区别就在于JDK环境有一些编译工具。一般来说,服务器只需要装了JRE就可以运行tomcat了,但也有例外。

    比如,HTTL 这个模板引擎,需要调用javac来编译模板为class文件,所以必须有JDK才能运行。如果没有JDK环境,也可以用JRE环境+javassist.jar 这个工具来代替javac编译模板为class文件。

    不少编译型的模板引擎都是这样的。JSP编译是否需要JDK,我也不太确定。

    如果你的环境确实不方便更改,可以在lib目录下加上javassist.jar试试。

    0 0
添加回答
相关问答

170

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 232372浏览量 回答数 170

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 159464浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 340546浏览量 回答数 8

119

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 301133浏览量 回答数 119

24

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 658166浏览量 回答数 24

39

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 262943浏览量 回答数 39

295

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 437770浏览量 回答数 295

251

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 309420浏览量 回答数 251

40

回答

阿里云ecs从购买到环境搭建和建站!!(phpstudy一件包)

梦丫头 2014-07-29 20:51:49 163720浏览量 回答数 40

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 483497浏览量 回答数 24
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载