Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';不要在另一个文件中使用Java类_Java - Fatal编程技术网

Can';不要在另一个文件中使用Java类

Can';不要在另一个文件中使用Java类,java,Java,找不到解决这个问题的办法 Guitar2.java: public class Guitar2 { private String serialNumber; public Guitar2(String serialNumber) { this.serialNumber = serialNumber; } public String getSerialNumber() { return serialNumber;

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

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
我读到,如果一个文件在同一个目录中,那么它的类可以在同一目录中的其他文件中使用,而无需任何导入语句。这里有什么问题

使用上述代码后编辑输出:



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

运行
javac-guitart.java

只有在编译完并创建了一个Guitar.class之后,才能运行
javac Inventory.java
run
javac guitart.java


只有在编译完并创建了一个Guitar.class之后,才能运行
javac Inventory.java

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

首先尝试编译guitart.java。然后运行你的命令。或者试试这个:
javac*.java
确保两个类都有相同的包。即使它们位于同一目录中,不同的包也可能导致此问题。键入相同的包或使用导入,然后尝试使用
javac*.java
编译,确保两个类具有相同的包。即使它们位于同一目录中,不同的包也可能导致此问题。键入相同的包或使用导入,然后尝试使用
javac*.java

进行编译。首先尝试执行
javac guist.java
,然后执行
javac Inventory.java
——这能解决问题吗?(我不确定这是否必要,但值得一试。)Eclipse、Netbeans、Intellij。。。选择您的IDE。使用文本编辑器进行其他操作;-)看来你已经解决了第一个问题。“未选中”问题是因为您使用的是没有类型参数的
List
LinkedList
。这些都应该避免——Java只允许向后兼容。使用
List
LinkedList
。首先尝试执行
javac-guitart.java
,然后再执行
javac-Inventory.java
——这能解决问题吗?(我不确定这是否必要,但值得一试。)Eclipse、Netbeans、Intellij。。。选择您的IDE。使用文本编辑器进行其他操作;-)看来你已经解决了第一个问题。“未选中”问题是因为您使用的是没有类型参数的
List
LinkedList
。这些都应该避免——Java只允许向后兼容。使用
List
LinkedList
。查看我对@Mifmif的评论。@TMOTTM do
ls-l
并将输出添加到问题中查看我对@Mifmif的评论。@TMOTTM do
ls-l
并将输出添加到问题中执行
javac*.java
时,我得到
注意:Inventory.java使用未经检查或不安全的操作。使用-Xlint重新编译:未选中以获取详细信息。
请参阅@TMOTTM这是一个警告-但这并不意味着您的代码没有编译。
.class
文件是否已创建?@Mifmif除非他使用的源与他发布的琐碎的源非常不同,否则此链接不相关。@TMOTTM是您问题中真正的小源,是您正在编译的实际源,还是您在其中有更多的内容(可以理解)在执行
javac*.java
时,我发现
注意:Inventory.java使用未经检查或不安全的操作。使用-Xlint重新编译:未选中以获取详细信息。
请参阅@TMOTTM这是一个警告-但这并不意味着您的代码没有编译。
.class
文件是创建的吗?@Mifmif除非他使用的源与他发布的琐碎的源非常不同,否则此链接不相关。@TMOTTM是您问题中真正的小源,还是您正在编译的实际源,还是您(可以理解)在原始帖子中遗漏了更多的内容?
[me]machine @ ricks $ javac Inv2.java 
Note: Inv2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.