亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當我使用 javac 編譯多個 .java 文件時,出現一些“重復類”錯誤,但我在代碼中找不到錯誤

當我使用 javac 編譯多個 .java 文件時,出現一些“重復類”錯誤,但我在代碼中找不到錯誤

慕的地10843 2024-01-17 16:45:04
當我使用 javac 編譯多個.java文件時,出現一些“重復類”錯誤,但我在代碼中找不到錯誤。有四個.java文件,所有這些文件都位于 Windows 中的同一文件夾中。MyApp.java文件中的代碼: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();    }}Rectangle.java文件中的代碼:    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);        }    }Circle.java文件中的代碼: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);    }}Worker.java文件中的代碼: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
查看完整描述

3 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

主要是:

當類和接口被組織成一個包時,該包被表示為一個目錄,并且任何子包都被表示為子目錄。

假設您的根源目錄是src,文件應排列為

src/
?|
?+?-?MyApp.java
?|
?+?=?dx/?
??????|
??????+?-?Worker.java
??????|
??????+?=?shapes/
????????????|
????????????+?-?Circle.java
????????????+?-?Rectangle.java

要編譯更改目錄src并使用:

/src>?javac?*.java?dx/*.java?dx/shapes/*java

或者,對于 Windows:

C:\src>javac?*.java?dx\*.java?dx\shapes\*java

由于所有類都在 中引用MyApp,因此您只需編譯該文件,編譯器就會找到并編譯其他類:

src>?javac?MyApp.java

最好一次編譯所有文件,因為(相同的文檔):

在命令行或參數文件中指定的源文件的順序并不重要。javac 將把這些文件作為一個組一起編譯,并自動解決各個源文件中聲明之間的任何依賴關系。


查看完整回答
反對 回復 2024-01-17
?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

一起編譯目錄下的所有文件

javac 目錄名/*.java


查看完整回答
反對 回復 2024-01-17
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

您只能調用主類,即MyApp只需編譯主類javac MyApp.java即可java MyApp



查看完整回答
反對 回復 2024-01-17
  • 3 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號