【问题标题】:Java compilation / package / namespace errorJava编译/包/命名空间错误
【发布时间】:2017-12-16 01:36:15
【问题描述】:

这是基本 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 

它编译。

当我尝试时

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

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

但我仍然无法做到这一点。我应该写什么

【问题讨论】:

  • javac com/myname/robos/Robo.java, javac com/myname/robos/Arena.java,并阅读classpathsourcepath 选项至javac
  • 我必须从路径外运行编译器?
  • 您必须以保留路径的方式运行它。阅读精美手册。它记录了如何使用javac。阅读精美手册。
  • 谢谢。什么是精品手册?
  • 文档。这是一个通用术语,在编程界很流行。

标签: java compiler-errors packages


【解决方案1】:

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

如果您的 .java 文件位于 ../Desktop 中,您必须创建名称为 com、myname 和 robos 的文件夹,然后将它们粘贴到那里,这样您的文件将位于 ../Desktop/com/myname/robos 中.

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

$ javac com/myname/robos/Arena.java

$ java com/myname/robos/Arena

在 ../Desktop 中定位您

【讨论】:

  • 不确定您所指示的路径,但最好不要像您可能指示的那样从包层次结构的深处javac。您想从包层次结构的根目录编译或使用classpath 和/或sourcepath 选项直接设置它。这个答案不正确。
  • 好的,你是对的,已编辑。您可以从包层次结构的根目录编译,但是,在这种情况下,需要在 javac 命令中建立层次结构本身。
  • java 需要一个完全限定的类名作为参数,而不是文件系统路径。你在这些命令的开头用../Desktop 表示什么?那不应该是命令的一部分。你会在发布示例之前运行它们吗?
  • 不是,它只是可能位置的一个例子,它不是 javac 命令的一部分
  • 但是您将其显示为命令的一部分。我不明白。
猜你喜欢
  • 2011-08-26
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
相关资源
最近更新 更多