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