【问题标题】:Cannot find class in same package在同一个包中找不到类
【发布时间】:2023-03-30 20:01:01
【问题描述】:

我正在尝试编译 Board.java,它与 Hexagon.java 位于同一包(和目录)中,但我收到此错误:

Board.java:12: cannot find symbol
symbol  : class Hexagon
location: class oadams_atroche.Board
    private Hexagon[][] tiles;

Board.java 的前几行:

package oadams_atroche;

import java.util.LinkedList;
import java.util.Queue;
import java.io.PrintStream;

import p323.hex.*;

public class Board implements Piece{
>---//Fields
>---private int n;
>---private Hexagon[][] tiles;

Hexagon.java 的前几行:

package oadams_atroche;

import p323.hex.*;

public class Hexagon implements Piece{

我只是看不出我做错了什么。有什么想法吗?

谢谢

【问题讨论】:

  • 我猜你犯了一点复制/粘贴错误,因为你写了两次 Board,但是这里的 Hexagon 为零 ...
  • 能否贴出hexagon.java的前几行
  • Hexagon.java 是否编译干净?
  • 是的,Hexagon.java 编译得很好。
  • 编译路径上的两个类是否在一起?

标签: java


【解决方案1】:

我很确定您是从错误的目录中编译的。 您应该从源根目录编译,而不是从 oadams_atroches 目录中编译。

看看这个 bash 会话:

aioobe@r60:~/tmp/hex/oadams_atroche$ ls
Board.java  Hexagon.java
aioobe@r60:~/tmp/hex/oadams_atroche$ javac Board.java 
Board.java:12: cannot find symbol
symbol  : class Hexagon
location: class oadams_atroche.Board
    private Hexagon[][] tiles;
            ^
1 error

如果我上一个目录...

aioobe@r60:~/tmp/hex/oadams_atroche$ cd ..

...并编译:

aioobe@r60:~/tmp/hex$ javac oadams_atroche/Board.java 
aioobe@r60:~/tmp/hex$ 

【讨论】:

    【解决方案2】:

    它对我有用:

    cd SRC_DIRECTORY
    javac  -cp . PACKAGE/CLASS.java
    

    【讨论】:

      【解决方案3】:

      不确定不同的平台,但在 Windows 上使用 Netbeans,创建一个项目通常是最简单的。

      如果您尝试从命令行编译:

      javac -cp 。 *.java

      【讨论】:

        猜你喜欢
        • 2015-07-28
        • 2021-03-29
        • 2016-04-19
        • 1970-01-01
        • 2014-10-09
        • 1970-01-01
        • 1970-01-01
        • 2018-09-28
        • 1970-01-01
        相关资源
        最近更新 更多