导入有效包导致 java 编译器错误

importing a valid package is causing a java compiler error

我在编译 Order.java 文件时遇到编译器错误,即使它包含另一个打包的 class 的导入语句。我不完全确定为什么会这样,但这是一个目录树,其中包含我拥有的一些文件:

我在编译 Order.java 时遇到的编译器错误:

 Order.java:2: error: package com.my.utils does not exist
 import com.my.utils.MyDate;
               ^
 Order.java:5: error: cannot find symbol
  public MyDate orderDate;
       ^
  symbol:   class MyDate
  location: class Order

 Order.java:16: error: cannot find symbol
  public Order(MyDate d, double amt, String c, String p, int q){
             ^
 symbol:   class MyDate
 location: class Order

 Order.java:24: error: cannot find symbol
  public Order (MyDate d, double amt, String c) {
              ^
 symbol:   class MyDate
 location: class Order
4 errors

在尝试形成评论后,我仍然不确定如何解决这个问题。这里有更多细节。

.bash_profile 中的现有语句:

 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
 export CLASSPATH=${CLASSPATH}:/Users/3aCaGa/Desktop/Java-SE-8-Programs/SimplifiedDateClass/com/my

我是如何尝试编译的?我将转到目录中的 java 文件位置和 运行 命令,例如:

 java Order.java

有关文件及其确切内容的更多详细信息,请参见: https://github.com/gosem01/Java-SE-8-Programs/tree/master/SimplifiedDateClass/com/my

要编译,请转到您可以 "see" com 文件夹的目录并执行:

*nix/MacOS

javac -cp . com/my/domain/*.java com/my/utils/*.java

Windows

javac -cp . com\my\domain\*.java com\my\utils\*.java

希望对您有所帮助

您的包和导入语句与您的目录结构不匹配。

你的Order.class应该有:

package com.my.domain;
import com.my.utils.MyDate;

Utils.class:

package com.my.utils;