Java 8编译错误quine(12203字节)
使用以下命令在Windows + mingw上使用Java 1.8.0_11 jdk生成:
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
可能不是最短的一个,也可能不是最长的一个,更多的是概念证明。之所以可行,是因为错误输出最多显示100个错误。
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