我创建了一个类HT17

package useFul;
class HT17
{
    void show()
    {
        System.out.println("Hello World!");
    }
}


我尝试从同一包的另一个类访问它

package useFul;
class HT18
{
    public static void main(String[] args)
    {
        HT17 h =new HT17();
        h.show();
    }
}


但我遇到错误:找不到符号HT17
是的,它们在同一目录中,即useFul
解决方案将是有帮助的!

最佳答案

很可能您正在使用javac <file name>,即使您已定义包,它也会在同一文件夹中创建类文件。

因此,您必须使用javac -d .选项,这将为类创建正确的文件夹结构。请尝试以下方法。

$ javac HT17.java -d .
$ javac HT18.java -d .
$ java useFul.HT18


-d用来表示在何处使用package创建具有正确文件夹结构的已编译类。在示例中,使用.表示使用当前目录。

08-04 20:23