当我使用javac来编译多个.java文件时,出现了一些“重复的类”错误,但是在我的代码中找不到错误]]

问题描述 投票:0回答:2

当我使用javac编译多个。java

文件时,出现了一些“ duplicate class”错误,但是在代码中找不到错误。

有四个。java

文件,所有这些文件都在Windows中的同一文件夹中。
  1. MyApp.java文件中的代码:
  2. import dx.*;
    import dx.shapes.*;
    
    class MyApp {
        public static void main(String[] args) {
            System.out.println("This is a test application."); 
    
            Rectangle rect = new Rectangle(10, 20);
            rect.Speak();
    
            Circle circle = new Circle(15);
            circle.Speak();
    
            Worker worker = new Worker();
            worker.Speak();
        }
    }
    
  1. Rectangle.java文件中的代码:
  2.     package dx.shapes;
    
        public class Rectangle {
            private int x, y;
            private int width, height;
    
            public Rectangle() {
                this(0, 0, 1, 1);
            }
            public Rectangle(int width, int height) {
                this(0, 0, width, height);
            }
            public Rectangle(int x, int y, int width, int height) {
                this.x = x;
                this.y = y;
                this.width = width;
                this.height = height;
            }
            public void Speak(){
                System.out.println("I'm a rectangle, width:" + this.width + ", height:" + this.height);
            }
        }
    
  1. Circle.java文件中的代码:
  2. package dx.shapes;
    
    public class Circle {
        private int x, y;
        private int radius;
    
        public Circle() {
            this(0, 0, 10);
        }
        public Circle(int radius) {
            this(0, 0, radius);
        }
        public Circle(int x, int y, int radius) {
            this.x = x;
            this.y = y;
            this.radius = radius;
        }
        public void Speak(){
            System.out.println("I'm a circle, radius:" + this.radius);
        }
    }
    
  1. Worker.java文件中的代码:
  2. package dx;
    
    public class Worker {
        public void Speak(){
            System.out.println("I'm a worker.");
        }
    }
    

在Windows命令行中,我使用javac来编译这些源代码:

javac MyApp.java Rectangle.java Circle.java Worker.java

但是我唯一得到的是错误列表:

Rectangle.java:3: error: duplicate class: dx.shapes.Rectangle
public class Rectangle {
       ^
MyApp.java:8: error: cannot access Rectangle
        Rectangle rect = new Rectangle(10, 20);
        ^
  bad source file: .\Rectangle.java
    file does not contain class Rectangle
    Please remove or make sure it appears in the correct subdirectory of the sourcepath.
Circle.java:3: error: duplicate class: dx.shapes.Circle
public class Circle {
       ^
MyApp.java:11: error: cannot access Circle
        Circle circle = new Circle(15);
        ^
  bad source file: .\Circle.java
    file does not contain class Circle
    Please remove or make sure it appears in the correct subdirectory of the sourcepath.
Worker.java:3: error: duplicate class: dx.Worker
public class Worker {
       ^
MyApp.java:14: error: cannot access Worker
        Worker worker = new Worker();
        ^
  bad source file: .\Worker.java
    file does not contain class Worker
    Please remove or make sure it appears in the correct subdirectory of the sourcepath.
6 errors

我不知道怎么了。为什么?

[当我使用javac来编译多个.java文件时,出现了一些“重复类”错误,但是在我的代码中找不到错误。有四个.java文件,所有这些文件都位于...

java javac
2个回答
0
投票

尝试一下:


0
投票

完全编译目录中的所有文件


0
投票

您只能调用主类,例如,MyApp仅使主类javac MyApp.java紧随java MyApp

© www.soinside.com 2019 - 2024. All rights reserved.