在cmd下编译Java源文件文件出现程序包xxxx不存在

本文详细解析了在编译Java源文件时遇到程序包不存在的常见问题,并提供了具体的解决方案,通过调整编译路径至共有目录,确保正确引用外部类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当编译Java源文件时遇到程序包不存在的问题,我们应该如何解决呢?
话不多说,开始对这个问题进行讲解,真心希望大家能有所收获


在最近的jsp学习过程中,突然遇到程序包不存在问题,如下所示

D:\apache-tomcat-9.0.16\webapps\ch6\WEB-INF\classes\myservlet\control\example_Servlet.java:2: 错误: 程序包mybean.data不存在

遇到这个问题我也在思考,花了很长时间,也四处查找资料,但无一列外都是不管用的,牛头不对马嘴。要不就是有些讲解的太过于晦涩难懂,难于理解。无奈之下只能自己钻研,所幸皇天不负。



为何会遇到这个问题呢?
主要是由于路径的原因,对于我们一般编译来说,都是直接在cmd下写 javac,然后将Java源文件拖进窗口。

如下:

C:\Users\Administrator>javac D:\apache-tomcat-9.0.16\webapps\ch6\WEB-INF\classes\myservlet\control\example_Servlet.java

但是当我们在example_Servlet.javac下使用了import xxx.java导入其他Java类。

这就会导致这次错误的发生,具体是怎样的请见下图:
结构图

具体情况如上图所示,我们会发生 程序包mybean.data不存在的原因在于我们没有把javac编译的位置切换到编译文件和被引入文件共有的文件夹,用例子说明如下:

Servlet.java文件位置为:
D:\apache-tomcat-9.0.16\webapps\ch6\WEB-INF\classes\myservlet\control

引入的java文件为:
D:\apache-tomcat-9.0.16\webapps\ch6\WEB-INF\classes\mybean\data

我们从这两个路径可以看出他们的公共路径为:
D:\apache-tomcat-9.0.16\webapps\ch6\WEB-INF\classes

所以我们使用cd进入到公共路径进行编译:
>D:\apache-tomcat-9.0.16\webapps\ch6\WEB-INF\classes javac myservlet\control\example_Servlet.java


这样我们就能成功进行编译了,如还有不理解的,或有什么补充的,欢迎大家积极留言! 谢谢!
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值