Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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
&引用;找不到符号“;java代码_Java - Fatal编程技术网

&引用;找不到符号“;java代码

&引用;找不到符号“;java代码,java,Java,我很难找出我的代码有什么问题。我在同一个目录中创建了两个不同的文件,但我一直收到这个错误。谢谢你的洞察力 第一个文件是: public class CircleDriver{ public static void main (String[] args){ Circle aCircle = new Circle(); aCircle.setColor("green"); aCircle.setRadius(10); aCi

我很难找出我的代码有什么问题。我在同一个目录中创建了两个不同的文件,但我一直收到这个错误。谢谢你的洞察力

第一个文件是:

public class CircleDriver{
    public static void main (String[] args){
        Circle aCircle = new Circle();

        aCircle.setColor("green");
        aCircle.setRadius(10);
        aCircle.display();

        Double circleArea = aCircle.computeArea();
        Double circumference = aCircle.computeCircumference();

        System.out.println("circle area: " + circleArea);
        System.out.println("circle circumference: " + circumference);
        System.out.println();
    }
}
第二个文件是:

public class Circle{
    public double circumference;
    public double PI = 3.14159;
    public double radius;
    public double area = 0;
    public String color = "";

    public void setColor(String newColor){
        color = newColor;
    }   

    public void setRadius(double newRadius){
        radius = newRadius; 
    }

    public void display(){
        System.out.println("I am a circle");
        System.out.println("my color is " + color);
        System.out.println("my radius is " + radius);
    }

    public double computeArea(){
            return PI * radius * radius;
    }

    public double computeCircumference(){
        return 2 * PI * radius;
    }
}
当我尝试编译第一个文件时,我在命令提示符下得到:

CircleDriver.java:3: error: cannot find symbol
            Circle aCircle = new Circle();
            ^
  symbol:   class Circle
  location: class CircleDriver
CircleDriver.java:3: error: cannot find symbol
            Circle aCircle = new Circle();
                                 ^
  symbol:   class Circle
  location: class CircleDriver
`2 errors

它们应该在相同的包中。如果没有,则必须导入带有完整限定名(带有包名)的
圆圈

对于eclipse,它编译所有必需的文件。在使用命令行时,请确保编译
Circle.java
CircleDriver.java
,如下所示:

javac -cp . Circle.java CircleDriver.java

您首先编译第一个文件,这意味着第二个文件循环尚未编译。请先编译第二个目录,再编译第一个目录。

是否将目录标记为源文件夹?它们也在同一个包裹里吗?如果不是,则应使用导入。 我已经在同一个包中复制了您的类,它运行良好。输出为:

I am a circle
my color is green
my radius is 10.0
circle area: 314.159
circle circumference: 62.8318

您的代码看起来很好,因此我假设文件在不同的包中,或者编译器无法看到
Circle.java

第一个问题的解决方案是:

  • 将两个类移动到同一个包中。它们的顶部必须有相同的包声明(例如,
    package com.mycompany.myapp;

  • 导入圆类:
    Import path.to.circle.clazz.circle

  • 使用完全限定名:
    path.to.Circle=新路径.to.Circle()


  • 如果是编译器,则需要使用javac命令同时编译这两个类:
    javac-cp。java

    类是否在同一个包中?如果没有,您需要将
    Circle
    导入
    CircleDriver
    。它不允许我编译第一个文件。这就是我努力想弄明白的。为什么要投否决票?这是新手提出的一个好问题。我已经试过了,但仍然不起作用。我甚至清理了我的文件夹,以确保旧版本不会被指向。我再次启动并尝试重新编译第二个文件,然后是第一个文件。同样的问题。尝试同时编译这两个文件。javac Circle.java CircleDriver.javac谢谢。这种方法奏效了。我真的很感谢你的帮助。