When I try to compile this class with javac, I get a compilation error and Test.class is not created.
public class Test {
public static void main(String[] args) {
int x = 1L; // <- this cannot compile
}
}
But when I create this class in Eclipse, I can see that Test.class appears in target/classes. When I try to run this class from command line with java.exe, I get
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from long to int
Does Eclipse use its own special Java compiler to create a broken .class? How does java.exe know about complilation problems in .class?