Dieser Beitrag ist der Artikel zum 25. Tag des Java-Adventskalenders 2018. Obwohl ich ein Anfänger bin, habe ich mich vorerst im leeren Raum mit dem Geist "Es ist sinnvoll, daran teilzunehmen!" Registriert.
Trotz des letzten Tages tut mir der dünne Inhalt leid, aber wie ein Anfänger ist es Zeit für Hello World!
Ich habe ein Gerücht von Java11 gehört, dass Java ausgeführt werden kann, ohne mit Java zu kompilieren, also werde ich Hello World ausprobieren. Es scheint jedoch, dass es Einschränkungen gibt, beispielsweise nur, wenn eine Quelldatei fertig ist, also werde ich das auch versuchen.
OS:Windows 10 Java:Oracle Open JDK 11 Konsole: Eingabeaufforderung
HelloJDK11.java
public class HelloJDK11 {
public static void main(String[] args) {
System.out.println("HelloWorld!");
}
}
Versuche zu rennen
>java HelloJDK11.java
HelloWorld!
HelloJDK11.class wurde nicht in dem Verzeichnis erstellt, in dem HelloJDK11.java vorhanden ist.
>javac HelloJDK11.java
>java HelloJDK11
HelloWorld!
Wie üblich wurde HelloJDK11.class erstellt.
>java HelloJDK11.java
Error:Klasse im Pfad der Anwendungsklasse gefunden: HelloJDK11
Wenn die Klassendatei im Klassenpfad vorhanden ist, führt die Ausführung der Java-Datei mit dem Befehl java anscheinend zu einem Fehler. Nach dem Löschen der Klassendatei kann diese mit Java HelloJDK11.java erneut ausgeführt werden.
public class HelloJDK11 {
public static void main(String[] args) {
System.out.println("HelloWorld!");
callMethod();
}
private static void callMethod() {
System.out.println("CalledMethod!");
}
}
Lauf
>java HelloJDK11.java
HelloWorld!
CalledMethod!
Der Methodenaufruf war auch in Ordnung.
HelloJDK11.java
public class SorryJDK11 {
public static void main(String[] args) {
~ Wie zuvor, also weggelassen ~
}
javaファイル名:HelloJDK11.java Klassenname: SorryJDK11
Ausführen und kompilieren
>java HelloJDK11.java
HelloWorld!
CalledMethod!
>javac HelloJDK11.java
HelloJDK11.java:1:Error:Klasse SorryJDK11 ist öffentlich und Datei SorryJDK11.Muss in Java deklariert werden
public class SorryJDK11 {
^
1 Fehler
Wenn der Java-Dateiname und der Klassenname nicht übereinstimmen,
HelloJDK11.java
public class HelloJDK11 {
public static void main(String[] args) {
Person suzuki = new Person("Suzuki");
System.out.println(suzuki.getName());
}
}
class Person {
//Feld
private String name;
//Konstrukteur
public Person(String name) {
this.name = name;
}
//Getter
public String getName() {
return this.name;
}
}
Lauf
> java HelloJDK11.java
Suzuki
Es gab keine Probleme.
Teilen Sie HelloJDK11.java in zwei Dateien, HelloJDK11.java und Person.java.
>java HelloJDK11.java
HelloJDK11.java:7:Error:Symbol kann nicht gefunden werden
Person suzuki = new Person("Suzuki");
^
Symbol:Klasse Person
Ort:Klasse HelloJDK11
HelloJDK11.java:7:Error:Symbol kann nicht gefunden werden
Person suzuki = new Person("Suzuki");
^
Symbol:Klasse Person
Ort:Klasse HelloJDK11
2 Fehler
Error:Kompilierung fehlgeschlagen
Ein Kompilierungsfehler ist aufgetreten!
Laut "Es muss in einer Quelldatei ausgefüllt werden." Ein Kompilierungsfehler ist aufgetreten.
>javac HelloJDK11.java
Zwei Dateien, HelloJDK11.class und Person.class, wurden erstellt und konnten mit dem Befehl java ausgeführt werden.
Als ich für Neulinge trainierte, erinnere ich mich, dass es jedes Mal schwierig war, Javac und Java zu verwenden. Daher war ich an der Operation interessiert, die dieses Mal ohne Java in Java 11 ausgeführt werden kann, und habe einen Artikel verfasst.
Laut JEP 330 scheint es nicht der Zweck zu sein, Java ohne Kompilierung wie eine Skriptsprache ausführen zu lassen.
Der Zweck besteht darin, Befehle in Java-Dateien als shevan (#! / Bin / sh in der ersten Zeile der Shell) auszuführen. ./HelloJDK11 Es scheint, dass es so ausgeführt werden kann. (Ich werde es das nächste Mal versuchen.)
Recommended Posts