Java1.4.2 (105char)
A.java
class B{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i+"":"":"Buzz"));}}
main
dans class
. Cependant, un message d'erreur apparaît$ java -version
java version "1.4.2_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04)
Java HotSpot(TM) Client VM (build 1.4.2_19-b04, mixed mode)
$ javac -version
javac: -la version est un indicateur non valide.
Comment utiliser: javac <options> <source files>
Les options disponibles sont:
-g Génère toutes les informations de débogage
-g:aucun Ne génère pas d'informations de débogage
-g:{lines,vars,source}Générer uniquement certaines informations de débogage
-nowarn ne lève pas d'avertissement
-Imprimer un message sur le comportement du compilateur détaillé
-deprecation Imprime l'emplacement des sources où des API obsolètes sont utilisées
-classpath <path>Spécifiez l'emplacement de recherche dans le fichier de classe d'utilisateurs
-sourcepath <path>Spécifiez où rechercher le fichier source d'entrée
-bootclasspath <path>Remplacez l'emplacement du fichier de classe d'amorçage
-extdirs <dirs>Remplacer l'emplacement des extensions installées
-d <directory>Spécifiez l'emplacement de stockage du fichier de classe généré
-encoding <encoding>Spécifie le codage de caractères utilisé par le fichier source
-source <release>Maintenir la compatibilité de la source avec la version spécifiée
-target <release>Générer un fichier de classe pour une version de VM spécifique
-aide Imprimer un résumé des options standard
$ echo -n 'class B{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ javac A.java
A.java:1: ?Type incompatible pour:Ni l'un ni l'autre n'est un sous-type de l'autre.
Deuxième opérande: int
Troisième opérande: java.lang.String
class B{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
^
A.java:1: ?Type incompatible pour:Ni l'un ni l'autre n'est un sous-type de l'autre.
Deuxième opérande: int
Troisième opérande: java.lang.String
class B{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
^
2 erreurs
$ echo -n 'class A{static{for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i+"":"":"Buzz"));}}' > A.java
$ wc -c
105 A.java
$ javac A.java
$ java A
1
2
Fizz
4
Buzz
(Omis)
97
98
Fizz
Buzz
Exception in thread "main" java.lang.NoSuchMethodError: main
-version
à l'ère de Java1.4.2Java5~Java6 (96char)
A.java
enum A{B;int i;{for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
main
$ java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode, sharing)
$ javac -version
javac 1.5.0_22
javac:Il n'y a pas de fichier source.
Comment utiliser: javac <options> <source files>
Les options disponibles sont:
-g Génère toutes les informations de débogage
-g:aucun Ne génère pas d'informations de débogage
-g:{lines,vars,source}Générer uniquement certaines informations de débogage
-nowarn ne lève pas d'avertissement
-Imprimer un message sur le comportement du compilateur détaillé
-deprecation Imprime l'emplacement des sources où des API obsolètes sont utilisées
-classpath <path>Spécifiez l'emplacement de recherche dans le fichier de classe d'utilisateurs
-cp <path>Spécifiez l'emplacement de recherche dans le fichier de classe d'utilisateurs
-sourcepath <path>Spécifiez où rechercher le fichier source d'entrée
-bootclasspath <path>Remplacez l'emplacement du fichier de classe d'amorçage
-extdirs <dirs>Remplacer l'emplacement des extensions installées
-endorseddirs <dirs>Remplacer l'emplacement du chemin standard recommandé
-d <directory>Spécifiez l'emplacement de stockage du fichier de classe généré
-encoding <encoding>Spécifie le codage de caractères utilisé par le fichier source
-source <release>Maintenir la compatibilité de la source avec la version spécifiée
-target <release>Générer un fichier de classe pour une version de VM spécifique
-version Informations sur la version
-aide Imprimer un résumé des options standard
-X Imprimer un résumé des options non standard
-J<flag> <flag>Passer directement au système d'exécution
$ echo -n 'enum A{B;int i;{for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ wc -c A.java
96 A.java
$ javac A.java
$ java A
1
2
Fizz
4
Buzz
(Omis)
97
98
Fizz
Buzz
Exception in thread "main" java.lang.NoSuchMethodError: main
-version
, mais l'omission du fichier source me met en colère.Java7 (130char)
A.java
class A{public static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
main
(avec une erreur), mais à partir de Java7, il a cessé de fonctionner.$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) Client VM (build 24.80-b11, mixed mode, sharing)
$ javac -version
javac 1.7.0_80
$ echo -n 'enum A{B;int i;{for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ javac A.java
$ java A
Erreur:La méthode principale ne peut pas être trouvée dans la classe A. Définissez la méthode principale comme suit:
public static void main(String[] args)
$ echo -n 'class A{public static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ wc -c A.java
130 A.java
$ javac A.java
$ java A
1
2
Fizz
4
Buzz
(Omis)
97
98
Fizz
Buzz
A.java
interface A{static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}
main
peut être écrite en ʻinterface et que
public` n'est plus nécessaire, elle est un peu plus courte.$ java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
$ javac -version
javac 1.8.0_212
$ echo -n 'interface A{static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"));}}' > A.java
$ wc -c A.java
127 A.java
$ javac A.java
$ java A
1
2
Fizz
4
Buzz
(Omis)
97
98
Fizz
Buzz
Jshell (83char)
int i;for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"))
$ jshell --version
jshell 11.0.3
$ echo -n 'int i;for(;i++<100;)System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"))' | jshell -
1
2
Fizz
4
Buzz
(Omis)
97
98
Fizz
Buzz
int i;for(;i++<100;)println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"))
System.out.
$ echo -n 'int i;for(;i++<100;)println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz"))' | jshell PRINTING -
1
2
Fizz
4
Buzz
(Omis)
97
98
Fizz
Buzz