gpt4 book ai didi

java - eclipse如何在编译出错时执行java代码

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:31:25 26 4
gpt4 key购买 nike

当以下 java 代码在 eclipse 中执行时,它给出了正确的输出(即打印'Class B'),但是根据 java 规范,代码无法编译(因为父类(super class)构造函数需要一个 int 参数和编译器为 B 类提供的构造函数包括对父类(super class)无参数构造函数的调用,该构造函数未定义),并且当尝试在命令行中使用 javac 命令编译文件时,它仅编译父类(super class),即 A 类,失败并出现以下编译错误:

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 无法编译类的情况下执行主要方法。提前致谢。

更新

我删除了bin文件夹下eclipse创建的.class文件,尝试执行class,编译不了,所以没运行。但是当我创建一个带有公共(public)类名的源文件并在没有任何内容的情况下保存,然后添加上面的内容时,它起作用了。如果eclipse使用之前编译过的版本执行,怎么会给出main方法的输出呢,因为它完全编译成功的时候没有main方法?

最佳答案

实际上,eclipse 会尝试编译该类,但由于构建错误而无法编译,当您简单地运行这些文件时,它会执行先前已编译的类,这些类之前已成功编译(eclipse 会尝试编译和构建文件每次都按照通用设置保存)。

为了解决你可以尝试在运行前清理项目,而在javac的情况下,它只是编译,

关于java - eclipse如何在编译出错时执行java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10546718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com