Como o eclipse executa código java quando há erros de compilação
Quando o seguinte código java é executado no eclipse, ele fornece a saída correta (ou seja, imprime 'Classe B'), mas de acordo com a especificação java, o código não pode ser compilado (já que o construtor de superclasse requer umaint
argumento e o construtor fornecido pelo compilador para a classe B inclui uma chamada para o construtor super class no arg, que não está definido), e quando tentar compilar o arquivo usando o comando javac na linha de comando, ele compila apenas a classe super class ie A e falha com o seguinte erro de compilação:
<code>B.java:8: cannot find symbol symbol : constructor A() location: class A public class B extends A { ^ 1 error </code>
A seguir está o conteúdo do arquivo java:
<code>class A { public A(int x) { // } } public class B extends A { public static void main(String[] args) { System.out.println("Class b"); } } </code>
Alguém pode explicar como o eclipse executa o método principal sem que o bieng possa compilar a classe. Desde já, obrigado.
ATUALIZAR
Eu apaguei o arquivo .class creatd por eclipse na pasta bin e tentei executar a classe, e ela não pôde ser compilada, portanto não foi executada. Mas quando eu criei um arquivo de origem com o nome da classe pública e salvei sem qualquer conteúdo e, em seguida, adicionei o conteúdo acima, funcionou. Se eclipse usa a versão compilada anteriormente para executar, como poderia dar a saída domain
método, uma vez que não possuíamain
método no momento do sucesso compilação completa?