Java编译/包/命名空间错误

时间:2017-07-11 20:24:56

标签: java compiler-errors packages

这是基本Java最愚蠢,最简单的问题,但我做错了什么?

在名为

的目录结构中
com/myname/robos
   - Robo.java
   - Arena.java

Robo.java:

package com.myname.robos;   

public class Robo {
  public void fala() {
    System.out.println("Gleep Beep Boop!");     
  }
}

Arena.java:

package com.myname.robos;

import com.myname.robos.Robo;

public class Arena {

    public static void main(String[] args) {
        Robo r2 = new Robo();
        r2.fala();
    }
}

当我尝试:

javac Robo.java 

它编译。<​​/ p>

然后我尝试

javac Arena.java

我得到了

Arena.java:3: error: cannot find symbol
import com.myname.robos.Robo;
                            ^
  symbol:   class Robo
  location: package com.myname.robos
Arena.java:8: error: cannot find symbol
        Robo r2 = new Robo();
        ^
  symbol:   class Robo
  location: class Arena
Arena.java:8: error: cannot find symbol
        Robo r2 = new Robo();
                      ^
  symbol:   class Robo
  location: class Arena
3 errors

我知道目录/包等名称之间不兼容的错误。

但我仍然没有做到这一点。 我应该写什么?

1 个答案:

答案 0 :(得分:0)

您需要确保您的文件与包引用的结构相同,例如:

如果您的.java文件位于../Desktop,则必须创建名称为com,myname和robos的文件夹,然后将其粘贴到那里,以便您的文件位于../Desktop/com/myname/robos

然后你只需要编译Arena.java并运行它:

$ javac com / myname / robos / Arena.java

$ java com / myname / robos / Arena

将你放在里面../桌面