Java 8 compilation error quine (12203 bytes)
Generated on windows + mingw with java 1.8.0_11 jdk, using this command:
echo a > Q.java; while true; do javac Q.java 2> Q.err; if [ $(diff Q.err Q.java | wc -c) -eq 0 ]; then break; fi; cat Q.err > Q.java; done
May not be the shortest one, may not be the longest one either, more a proof of concept. Works because error output shows at most 100 errors.
Q.java:1: error: class, interface, or enum expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:1: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:1: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
^
(use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:1: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:2: error: ';' expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:2: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
^
Q.java:2: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:2: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
^
(use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:2: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:3: error: illegal start of type
^
^
Q.java:4: error: = expected
Q.java:1: error: <identifier> expected
^
Q.java:4: error: <identifier> expected
Q.java:1: error: <identifier> expected
^
Q.java:4: error: ';' expected
Q.java:1: error: <identifier> expected
^
Q.java:4: error: illegal start of type
Q.java:1: error: <identifier> expected
^
Q.java:4: error: = expected
Q.java:1: error: <identifier> expected
^
Q.java:5: error: '(' expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:5: error: ';' expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:5: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
^
Q.java:5: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:5: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
^
(use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:5: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:6: error: illegal start of type
^
^
Q.java:7: error: = expected
Q.java:1: error: <identifier> expected
^
Q.java:7: error: <identifier> expected
Q.java:1: error: <identifier> expected
^
Q.java:7: error: ';' expected
Q.java:1: error: <identifier> expected
^
Q.java:7: error: illegal start of type
Q.java:1: error: <identifier> expected
^
Q.java:7: error: = expected
Q.java:1: error: <identifier> expected
^
Q.java:8: error: '(' expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:8: error: ';' expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:8: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
^
Q.java:8: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:8: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
^
(use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:8: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:9: error: illegal start of type
^
^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: <identifier> expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: ';' expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: illegal start of type
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: illegal start of type
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: <identifier> expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: unclosed character literal
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: ';' expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: unclosed character literal
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:11: error: ';' expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:11: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
^
Q.java:11: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:11: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
^
(use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:11: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:12: error: illegal start of type
^
^
Q.java:12: error: <identifier> expected
^
^
Q.java:13: error: = expected
(use -source 1.4 or lower to use 'enum' as an identifier)
^
Q.java:13: error: ';' expected
(use -source 1.4 or lower to use 'enum' as an identifier)
^
Q.java:13: error: <identifier> expected
(use -source 1.4 or lower to use 'enum' as an identifier)
^
Q.java:13: error: = expected
(use -source 1.4 or lower to use 'enum' as an identifier)
^
Q.java:13: error: ';' expected
(use -source 1.4 or lower to use 'enum' as an identifier)
^
Q.java:13: error: = expected
(use -source 1.4 or lower to use 'enum' as an identifier)
^
Q.java:13: error: unclosed character literal
(use -source 1.4 or lower to use 'enum' as an identifier)
^
Q.java:13: error: unclosed character literal
(use -source 1.4 or lower to use 'enum' as an identifier)
^
Q.java:13: error: = expected
(use -source 1.4 or lower to use 'enum' as an identifier)
^
Q.java:14: error: <identifier> expected
Q.java:1: error: = expected
^
Q.java:14: error: ';' expected
Q.java:1: error: = expected
^
Q.java:14: error: illegal start of type
Q.java:1: error: = expected
^
Q.java:14: error: = expected
Q.java:1: error: = expected
^
Q.java:14: error: illegal start of type
Q.java:1: error: = expected
^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: ';' expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
^
(use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:16: error: illegal start of type
^
^
Q.java:17: error: = expected
Q.java:2: error: <identifier> expected
^
Q.java:17: error: <identifier> expected
Q.java:2: error: <identifier> expected
^
Q.java:17: error: ';' expected
Q.java:2: error: <identifier> expected
^
Q.java:17: error: illegal start of type
Q.java:2: error: <identifier> expected
^
Q.java:17: error: = expected
Q.java:2: error: <identifier> expected
^
100 errors
Error: Could not find or load main class Q
\$\endgroup\$