Cet article est l'article du 25ème jour du calendrier de l'avent Java 2018. Bien que je sois débutant, je me suis inscrit dans l'espace vide pour le moment avec l'esprit "C'est significatif de participer!"
Malgré le dernier jour, je suis désolé pour le contenu fin, mais comme un débutant, il est temps pour Hello World!
J'ai entendu une rumeur de Java11 selon laquelle java peut être exécuté sans compiler avec javac, je vais donc essayer Hello World. Cependant, il semble qu'il existe des restrictions telles que uniquement lorsqu'un fichier source est terminé, je vais donc essayer cela également.
OS:Windows 10 Java:Oracle Open JDK 11 Console: invite de commande
HelloJDK11.java
public class HelloJDK11 {
public static void main(String[] args) {
System.out.println("HelloWorld!");
}
}
Essayez de courir
>java HelloJDK11.java
HelloWorld!
HelloJDK11.class n'a pas été créé dans le répertoire où se trouve HelloJDK11.java.
>javac HelloJDK11.java
>java HelloJDK11
HelloWorld!
Comme d'habitude, HelloJDK11.class a été créé.
>java HelloJDK11.java
Erreur:Classe trouvée dans le chemin de classe de l'application: HelloJDK11
Apparemment, si le fichier de classe existe sur le chemin de classe, l'exécution du fichier java avec la commande java entraînera une erreur. Après avoir supprimé le fichier de classe, il peut être exécuté à nouveau avec java HelloJDK11.java.
public class HelloJDK11 {
public static void main(String[] args) {
System.out.println("HelloWorld!");
callMethod();
}
private static void callMethod() {
System.out.println("CalledMethod!");
}
}
Courir
>java HelloJDK11.java
HelloWorld!
CalledMethod!
L'appel de méthode était bien aussi.
HelloJDK11.java
public class SorryJDK11 {
public static void main(String[] args) {
~ Comme avant, donc omis ~
}
javaファイル名:HelloJDK11.java Nom de la classe: SorryJDK11
Exécuter et compiler
>java HelloJDK11.java
HelloWorld!
CalledMethod!
>javac HelloJDK11.java
HelloJDK11.java:1:Erreur:La classe SorryJDK11 est publique et fichier SorryJDK11.Doit être déclaré en java
public class SorryJDK11 {
^
1 erreur
Si le nom du fichier java et le nom de la classe ne correspondent pas,
HelloJDK11.java
public class HelloJDK11 {
public static void main(String[] args) {
Person suzuki = new Person("Suzuki");
System.out.println(suzuki.getName());
}
}
class Person {
//champ
private String name;
//constructeur
public Person(String name) {
this.name = name;
}
//Getter
public String getName() {
return this.name;
}
}
Courir
> java HelloJDK11.java
Suzuki
Il n'y a eu aucun problème.
Divisez HelloJDK11.java en deux fichiers, HelloJDK11.java et Person.java.
>java HelloJDK11.java
HelloJDK11.java:7:Erreur:Impossible de trouver le symbole
Person suzuki = new Person("Suzuki");
^
symbole:Personne de classe
endroit:Classe HelloJDK11
HelloJDK11.java:7:Erreur:Impossible de trouver le symbole
Person suzuki = new Person("Suzuki");
^
symbole:Personne de classe
endroit:Classe HelloJDK11
2 erreurs
Erreur:La compilation a échoué
Une erreur de compilation s'est produite!
Selon "Il doit être rempli dans un fichier source." Une erreur de compilation s'est produite.
>javac HelloJDK11.java
Deux fichiers, HelloJDK11.class et Person.class, ont été créés et peuvent être exécutés avec la commande java.
Quand je m'entraînais pour les nouveaux arrivants, je me souviens qu'il était gênant de javac et java à chaque fois, donc j'étais intéressé par l'opération qui peut être exécutée sans javac dans Java 11 cette fois et j'ai fait un article.
Selon JEP 330, il semble que le but n'est pas de permettre à Java de fonctionner sans compilation comme un langage de script séparé.
Le but est d'exécuter des commandes dans des fichiers Java comme shevan (#! / Bin / sh sur la première ligne du shell). ./HelloJDK11 Il semble que cela puisse être exécuté comme ça. (Je vais l'essayer la prochaine fois.)
Recommended Posts