當在eclipse中執行以下java代碼時,它會給出正確的輸出(即打印'Class B'),但根據java規範,代碼無法編譯超類的構造函數需要一個參數int
,而編譯器提供給B類的構造函數包含對超類無參數構造函數的調用,該構造函數沒有定義),並且當嘗試在命令行中使用javac命令編譯文件時,它只編譯超類,即A類和失敗,出現以下編譯錯誤:eclipse如何在編譯錯誤時執行java代碼
B.java:8: cannot find symbol
symbol : constructor A()
location: class A
public class B extends A {
^
1 error
以下是java文件內容:
class A {
public A(int x) {
//
}
}
public class B extends A {
public static void main(String[] args) {
System.out.println("Class b");
}
}
有人可以解釋如何執行eclipse的主要方法沒有bieng能夠編譯類。提前致謝。
UPDATE
我在bin文件夾中刪除.class文件creatd的日食,並試圖執行的類,它不能編譯,所以沒跑。但是當我創建一個帶有公共類名的源文件並保存沒有任何內容,然後添加上述內容時,它就起作用了。如果eclipse使用先前編譯的版本來執行,那麼它如何給出main
方法的輸出,因爲它在成功完全編譯時沒有main
方法?
您正在執行相同的文件還是正在運行其他主類? –
執行相同的文件 –