不能在另一个文件中使用Java类

时间:2014-05-30 23:59:40

标签: java

无法找到解决此问题的方法。

Guitar2.java:

public class Guitar2
{
    private String serialNumber;

    public Guitar2(String serialNumber)
    {
        this.serialNumber = serialNumber;
    }

    public String getSerialNumber()
    {
        return serialNumber;
    }
}

Inv2.java:

import java.util.List;
import java.util.LinkedList;

public class Inv2
{
    private List guitars;

    public Inv2()
    {   
        guitars = new LinkedList();
    }

    public void addGuitar(String serialNumber)
    {
        Guitar2 guitar = new Guitar2(serialNumber);
        guitars.add(guitar);
    }
}

两个文件都在同一目录中,都是755,目录在类路径中。我收到错误消息:

[machine]me @ directory $ javac Inventory.java 
Inventory.java:18: cannot find symbol
symbol  : class Guitar
location: class Inventory
        Guitar guitar = new Guitar();
        ^
Inventory.java:18: cannot find symbol
symbol  : class Guitar
location: class Inventory
        Guitar guitar = new Guitar();
                            ^
2 errors

我读到如果一个文件在同一目录中,那么它的类可以在同一目录中的其他文件中使用,而不需要任何import语句。这有什么问题?

POST EDIT使用上述代码时的输出:


[me]machine @ ricks $ javac Inv2.java 
Note: Inv2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

我收到.class个文件的.java个文件。

3 个答案:

答案 0 :(得分:3)

运行javac Guitar.java 然后(在编译完成并创建了Guitar.class之后)运行javac Inventory.java

答案 1 :(得分:1)

首先尝试编译Guitar.java。然后运行你的cmd。或试试这个:javac *.java

答案 2 :(得分:0)

确保两个类具有相同的包。即使它们位于同一目录中,不同的包也可能导致此问题。键入相同的包或使用导入,然后尝试使用javac *.java

进行编译