1

我正在尝试在我的 java 代码中实现一个接口,如下所示:

package PJ1;

public class Fraction implements FractionInterface, Comparable<Fraction>{

现在,FractionInterface.class 与 Fraction.java 文件在同一目录中,并且它也在 PJ1 包中:

package PJ1;

public interface FractionInterface{

然而,当我尝试编译 Fraction.java 文件时,出现以下错误:

D:\CSC220\PJ1\Fraction.java:36: error: cannot find symbol
public class Fraction implements FractionInterface, Comparable<Fraction>
                                 ^

我很难过,因为我所有的相关文件都在同一个目录中,我试图将我的所有类文件放在同一个包中。有任何想法吗?

4

4 回答 4

3

尝试像这样编译:

例如在 c: 你确实有两个 java 文件 - Fraction.java 和 FractionInterface.java ,你还没有为包创建任何文件夹,然后尝试:

c:> javac -d . *.java

这将编译所有文件并创建所需的包。您无需手动为包创建任何文件夹。

如果您已经为包创建了文件夹,并且您已经在包中,请说:

c:\PJ1,你可以简单地使用 javac 编译为:

c:\PJ1> javac *.java

希望这会奏效。

于 2013-09-28T18:30:57.533 回答
2

我的猜测是这些文件不在一个名为PJ1相对于编译器期望它们的位置的目录中。创建文件夹并将两个文件移动到该位置。为了更清楚一点,假设您的文件夹结构如下所示

myfolder
 +-PJ1
    Fraction.java
    FractionInterface.java

然后你需要从myfolder使用编译

javac PJ1\Fraction.java
于 2013-09-28T18:24:59.533 回答
0

确保这两个文件都在 PJ1 文件夹中并运行javac *.java.

于 2013-09-28T18:53:29.177 回答
0

只需转到文件所在目录上方的目录并从那里编译您的 java 文件(以便您可以查看它们是否正确编译),例如

javac 目录 1\file.java。

于 2020-04-04T10:13:14.693 回答