司空见惯的包( 三 )

司空见惯的包

那么Linux下当包名与文件目录不一致时是否会报错呢?不报错!

而且将源文件MyTest.java移到任意一个目录,只要javac能找到文件都能编译,且按包名的生成目录、生成类

  • Eclipse编译

  • 将文件导入Eclipse中编译,编译报错:声明的包”com.test“与期望的包”com.Test”不匹配,Eclipse执行了更严格的检查。

  • 成因分析

  • 由于在Eclipse中新建带包名的类,会自动生成相应的目录,代码重构重命名包名时,也会自动修改文件目录,所以很少出现上面的情况。经向项目组了解,此代码原来的包名是大写,从配置库获取代码,在本地Eclipse中将包名及文件目录修改为小写,再次提交到配置库时,由于配置库不区分目录大小写,配置库上的目录名没有修改,因此出现了包名与文件目录不一致的情况。