IDEA java项目引入第三方jar包为default package在其它包中无法访问的问题

南笙酒味 提交于 2020-04-09 18:36:14

问题场景

在学习《算法》第四版时需要在Java项目中引入一个第三方包stdlib.jar,一开始我直接在Project Structure ->Modules ->Dependencies中添加这个jar包,结果发现在我新建的package中的类访问不到这个jar包中的类,只有在src根目录下的类可以访问,并且访问时显示类是来自defualt package

问题原因

因为打开stdlib.jar可以看到,与一般的jar包不同,其下的类没有一个包名,所有的类是直接在stdlib.jar目录下,在被有包结构的类引用时,会被当成本包内的类,即编译器会在本包目录下查找默认包中的类,自然是找不到的。而由于没有包名,也无法使用import导入。

解决方案

方案一:

直接把jar包所有的类拷贝出来放到自己的package目录下,这样就不需要通过jar包的形式直接在项目中访问了,也可以把拷出来的类再打包成一个jar包再引用到项目中去

方案二:

如果你和我一样是在学习《算法》时使用stdlib.jar包遇到的这个问题,那么我推荐直接到https://github.com/kevin-wayne/algs4/下载这个zip然后打包成jar包引用到项目中使用,这样不仅不会有访问不到的问题,而且algs4.jar是包含stdlib.jar中的类的

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!