首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能在另一个文件中使用Java类

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

Stack Overflow用户
提问于 2014-05-30 23:59:39
回答 3查看 687关注 0票数 0

找不到解决这个问题的办法。

Guitar2.java:

代码语言:javascript
复制
public class Guitar2
{
    private String serialNumber;

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

    public String getSerialNumber()
    {
        return serialNumber;
    }
}

代码语言:javascript
复制
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文件,并且目录位于类路径中。我得到了错误消息:

代码语言:javascript
复制
[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

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

使用上述代码时,发布编辑输出:

代码语言:javascript
复制
[me]machine @ ricks $ javac Inv2.java 
Note: Inv2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

我得到两个.class文件的.java文件。

EN

回答 3

Stack Overflow用户

发布于 2014-05-31 00:02:41

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

票数 3
EN

Stack Overflow用户

发布于 2014-05-31 00:03:24

试着先编译Guitar.java。那就运行你的cmd。或者试试这个:javac *.java

票数 1
EN

Stack Overflow用户

发布于 2014-05-31 00:20:46

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23965023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档