异常:Exception: Unable to find a javac compiler; Perhaps JAVA_HOME does not point to the JDK.

ADS新手必看:ICCAP数据导入与导出CSV的完整流程(附常见问题解决) 本文为ADS新手详细讲解了如何将ICCAP测试数据导入ADS进行仿真分析,并导出为通用CSV格式的完整流程。内容涵盖文件格式解析、导入设置、数据验证、处理技巧及常见问题排查,重点解决了数据文件导入过程中的兼容性与单位映射等核心难点,帮助射频工程师高效连接测量与仿真环节。 阅读详情

异常现象

在分析tomcat源码时,把catalina的源码导入eclipse中启动成功后,打开浏览器地址http://localhost:8080/出现报错如下:
在这里插入图片描述控制台出现如下异常:

Exception compiling Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\Program Files (x86)\Java\jdk1.6.0_45\jre"

Exception: 
Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\Program Files (x86)\Java\jdk1.6.0_45\jre"
	at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:131)
	at org.apache.tools.ant.taskdefs.Javac.findSupportedFileExtensions(Javac.java:1210)
	at org.apache.tools.ant.taskdefs.Javac.scanDir(Javac.java:1147)
	at org.apache.tools.ant.taskdefs.Javac.collectFileListFromSourcePath(Javac.java:1181)
	at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:1115)
	at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:310)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:427)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:142)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:720)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:662)

异常分析

异常信息提示的是当前找不到javac的编译器,com.sun.tools.javac.Main 不在当前classpath下,可能当前的 JAVA_HOME 没有指向 JDK。百度了一下,发现同样的异常:

安装tomcat5.0的时候指定了jre的路径,导致tomcat_home, java_home都已经添加到了环境变量里,但启动jsp的时候却出现了以下的异常:
Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
产生的原因是java.home指到JAVAHOME/jre下了,而其lib下的tools.jar跟JAVA_HOME/jre下了,而其lib下的tools.jar跟JAVAH​OME/jre下了,而其lib下的tools.jar跟JAVA_HOME/lib/tools.jar不一样,编译jsp的时候需要用到后者。
注: java.home在运行的时候就会指向$JRE_HOME。

看了一下本地项目catalina的Build Path Libraries内确实是没有tools.jar这个jar包:
在这里插入图片描述

解决办法

从JDK中的lib文件夹内复制tools.jar加入到catalina项目的build path内,异常解决:
在这里插入图片描述
在这里插入图片描述

X书x-mini-sig_x-mini-mua X书的tiny风控代码,成功运行x-mini-sig|x-mini-mua 阅读详情

相关推荐

Uni-App推送踩坑实录:从云函数URL化到后台推送失效,我都经历了什么

本文详细记录了Uni-App开发者在接入uni-push 2.0时遇到的推送失效问题,从云函数URL化到后台推送失效的完整排查过程。通过系统化分析和与官方沟通,最终找到解决方案,并分享了预防措施与最佳实践,帮助开发者避免类似问题。

weixin_42552716的博客 487

unable to find java_Unable to find a javac compiler原因和解决方法

Unable to find a javac compiler;Perhaps JAVA_HOME does not point to the JDK异常产生原因和解决方法。安装tomcat的时候指定了jre的路径,导致tomcat_home, java_home都已经添加到了环境变量里,但启动jsp的时候却出现了以下的异常:Unable to find a javac compiler;com....

weixin_42374535的博客 4011

实战篇【2】-H3C防火墙开局基础配置

本篇文章为“H3C防火墙开局基础配置”,主要涵盖配置管理地址、聚合端口、安全区域、安全策略、静态路由、ACL,WEB和SSH远程管理、Console、SNMP、NTP时钟、日志主机等内容,对比交换机配置开局,增加两处配置,安全区域和安全策略。方便调试人员远程管理、调试。

weixin_47402139的博客 1万+

问题:Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath.Perhaps JAVA_HOME does not point to the JDK

在eclipse下,使用tomcat插件时,一切都设置妥当,包括classpath,java_home都设置好了,可是访问.jsp文件时,报告以下错误:Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath.Perhaps JAVA_HOME does not point to the JD

llh0223的专栏 4687

R语言笔记十:独立性检验函数

1.独立性检验函数        独立性检验是根据频数信息判断两类因子彼此相关或相互独立的假设检验。所谓独立性就是指变量之间是独立的,没有关系。 独立性检验算法:卡方检验、Fisher检验、Cochran-Mantel-Haenszel检验 2.假设检验 假设检验(Hypothesis Testing)是数理统计学中根据一定假设条件由样本推断总体的一种方法。 原假设——没有发生 备择假设——发生了 具体做法:根据问题的需要对所研究的总体作

weixin_44384631的博客 4111

OTN传送网实战指南:从光层到电层的完整架构解析(附配置示例)

本文深入解析OTN传送网从光层到电层的完整架构,涵盖关键组件、技术实现及配置示例。通过高速公路与光传送网的类比,详细介绍了光层超宽传输管道构建、电层业务调度核心引擎以及控制平面智能运维实战。附有典型组网方案与故障排查指南,助力网络工程师高效部署与维护OTN传送网。

tomato的博客 684

cento7安装Java时,Javac命令不识别解决方案

在centos7中以rpm包安装jdk无需配置环境变量, terminal中输入java -verison及java 命令也是没问题的,但是javac的话就会提示没有此命令: 出现问题: [root@localhost tmp]# javac bash: javac: command not found 解决方案: 此时我们用yum来装原生的就行了 [root@localhost tmp]# ...

是小朱啊的博客 724

YOLOv5 自定义模型 Android 部署完整指南

本文详细介绍了将YOLOv5模型部署到Android设备的完整流程,包含三个核心部分:首先验证官方模型测试,确保基础环境配置正确;随后进行模型转换,从PyTorch导出ONNX格式并优化,再转换为NCNN格式;最后在Android项目中集成自定义模型,包括文件替换、参数修改和代码适配。教程基于YOLOv5 6.1版本,使用NCNN框架进行移动端推理,涵盖了常见问题解决方案和关键配置要点,为开发者提供了从训练到部署的完整技术路线。

FJN110的博客 592

Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpat

解决办法:把JAVA_HOME(java的安装目录)/lib/tools.jar拷到TOMCAT_HOME(tomcat的安装目录)\common\lib下,重新启动Tomcat。

hebenben的博客 677

使用Simulink来模拟多旋翼无人机在风扰动条件下的飞行情况,并分析其稳定性

本教程详细介绍了使用Simulink进行多旋翼无人机风扰动稳定性分析的完整流程。首先构建包含飞行器动力学模型、控制系统和环境模拟模块的系统框架,重点讲解简化动力学方程的实现方法。随后指导设计PID控制器来维持姿态稳定,并添加随机风扰动模型模拟环境干扰。通过设置输入信号和输出显示,最终实现对不同风速条件下无人机控制性能的评估。该实例为无人机控制系统设计提供了实用的仿真方法,强调利用MATLAB工具进行可视化分析和参数优化,以提高系统抗干扰能力和稳定性。

amy_mhd的博客 421

uniapp [全端兼容] - 详细实现拍照或相册选取图片后插入水印功能,手机拍照或相册上传图像并添加自定义水印及指定位置显示水印,uniApp给图片加水印后上传到后端服务器或保存到本机相册详细教程!

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,图片水印,上传照片带水印,从相册选择图片加水印功能,拍完照片给图片加水印,添加照片水印,uniapp图片加水印,为图片添加自定义水印,uni-app上传图片并添加水印,上传图片加水印,uni-app如何对拍摄的照片加水印,uni-app实现图片上传添加水印操作,给上传的图片添加上水印,图片加完水印后如何上传到服务器,水印相机,拍照图片加水印,相册选取后给图片加上水印,渲染失败,无法保存,文字水印,日期

🏆 前端领域优质创作者 1万+

Unable to find a javac compiler错误之解决办法

最近用tomcat 5.0.28调试jsp,已经设置好了JAVA_HOME、TOMCAT_HOME及CLASSPATH,在本上一切正常,在家里的机器却总是出现以下错误: Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point

笑看人参----JAVA,WEB2.0,SOA... 4880

Python爬虫实战:使用Scrapy+Playwright高效爬取全球石油价格历史数据

python复制下载# 产品信息# 日期信息# 价格数据price = scrapy.Field() # 收盘价open = scrapy.Field() # 开盘价high = scrapy.Field() # 最高价low = scrapy.Field() # 最低价volume = scrapy.Field() # 交易量change_percent = scrapy.Field() # 涨跌幅# 元数据。

2201_76125261的博客 1020

解决com.sun.tools.javac.Main is not on the classpath / Unable to find a javac compiler 的问题

ant时报错:    解决com.sun.tools.javac.Main is not on the classpath的问题   com.sun.tools.javac.Main is not on the classpath.   Perhaps JAVA_HOME does not point to the JDK.   It is currently set to "C:\Pro

fooloveduck的专栏 1266

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Unable to find a javac compiler

Unable to find a javac compiler;com.sun.tools.javac.Main is not on the classpath.Perhaps JAVA_HOME does not point to the JDK org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(

疯猫 4976

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

javac.main.java,无法找到javac编译器com.sun.tools.javac.Main不在类路径错误上

I am trying to run java application and I am getting following error,Unable to find a javac compiler; com.sun.tools.javac.Main is not onthe classpath. Perhaps JAVA_HOME does not point to the JDKI have...

weixin_39804335的博客 436

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Ant 编译时 Unable to find a javac compiler的解决(转) ,果断选择了MyEcplise

解决方法是在一个外国人的blog上看来的,记到我的博客方便大家搜索,呵呵。 该作者解释原因是Ant不能和JRE一起使用,而需要使用JDK来作为Runtime JRE, 但是这个原因似乎也不是真正的原因,只是这个方法可以解决问题,解决方法如下: 打开菜单:Run--External Tool--External Tools... 在右边打开JRE页,在Separate JRE:中选

不抛弃不放弃 7920

Unable to find a javac compiler,

Unable to find a javac compiler首先,你必需检查一下自己的环境变量是不是正确;这个我想大家都会,只是有时候会忘了定一些,不过检查一下看看就行了。其次:在JDK的lib目录下有一个tools.jar文件,你把它拷到Tomcat安装目录下的common/lib目录下,应该就可以了,你试试吧最后:如果不可以,在打开tomcat的configue tomcat

wenm_ing的专栏 937

Ant Unable to find a javac compiler Perhaps JAVA_HOME does not point to the JDK 解决办法

今天在使用Ant 多渠道批量打包的时候,Ant打包程序一直报错,日志信息如下: F:\soft\android-sdk-windows\android-sdk-windows\tools\ant\build.xml:713: The following error occurred while executing this line: F:\soft\android-sdk-windows\an

Ricky 5652

环境变量设置无误,但Tomcat仍报“Unable to find a javac compiler”错误的排除

 原因是:因为先安装了tomcat的服务,然后才配置的JAVA_HOME。或安装tomcat服务后,JAVA_HOME发生改变出现无法正常读取环境变量。 如果是这种情况,直接运行bin目录下的startup.bat,是可以让tomcat正常启动的。 那样就需要卸掉tomcat服务,重新安装一次。 问题就能解决。 

Day day up! 1852

Unable to find a javac compiler;Perhaps JAVA_HOME does not point to the JDK解决

tomcat_home, java_home都已经添加到了环境变量里,但启动jsp的时候却出现了以下的异常 Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK 解决方案: 只要把JAVA_HOME/...

wengyupeng 蜗牛一步一步向前。。。 733

Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK(转

解决办法:把JAVA_HOME(java的安装目录)/lib/tools.jar拷到TOMCAT_HOME(tomcat的安装目录)/common/lib下,重新启动Tomcat。 

-=海 阔 天 空=- 4242

忘了配置哪出的错了

Unable to find a javac compiler;com.sun.tools.javac.Main is not onthe classpath.Perhaps JAVA_HOME does not point to theJDK后来上网找到了解决方案:只要把JAVA_HOME/lib/tools.jar拷到TOMCAT_HOME/common/lib下,重启动Tomcat,就可以了

BLUEWINTER 601

错误处理 Perhaps JAVA_HOME does not point to the JDK. It is currently set to ....

遇到错误: Perhaps JAVA_HOME does not point to the JDK. It is currently set to 。。。 原因: 这是由于eclipse 默认使用了JRE 需要重新指定到 JDK下的bin 解决方法: eclipse run -> External Tools  ->  External Tools Co

霖林烟雨 8849

解决Perhaps JAVA_HOME does not point to the JDK.

错误提示: com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:/Program Files/Java/jre1.8.0_73" 原来直接删除过Java,后来重新安装后出现各种各样的问题

程序猿周周的博客 3498

Unable to find a javac compiler---JBOSS

Unable to find a javac compiler启动Jboss 后 进入http://localhost:8080/点击JMX Console 出现了以下 异常 messagedescription The server encountered an internal error () that prevented it from fulfilling this request.ex

mingyuan's workspace 1025
上一篇: MongoDB连接与开启用户验证
下一篇: Eclipse导入Tomcat8.5.41源码
凉茶微凉
博客等级 码龄18年 103粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值