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

当编译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类。

这就会导致这次错误的发生,具体是怎样的请见下图:
在cmd下编译Java源文件文件出现程序包xxxx不存在_第1张图片

具体情况如上图所示,我们会发生 程序包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


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

你可能感兴趣的:(Java)