Magst du Bäder, alle? Ich mag das. Es ist eine gute Zeit, um in einem warmen Bad zu baden und sich zu entspannen. Es ist seltsam, und wenn Sie etwas anderes als das Programmieren tun, haben Sie etwas mit dem Programmieren zu tun. Dies war auch der Fall. Eines Tages, als ich wie immer im Bad verblüfft war, blitzte es plötzlich auf. "Kann JShell eine Datei lesen, in der Java-Code geschrieben ist, und seinen Inhalt ausführen?" "Wenn es möglich ist, kann es Java-Code wie ein Skript ausführen?" Hand.
Es scheint, dass es Menschen auf der Welt gibt, die programmieren, während sie ein Bad nehmen, aber leider habe ich dieses Niveau nicht erreicht, so dass ich es nicht sofort versuchen kann. Ich konnte nicht anders, also verließ ich früh das Badezimmer und achtete darauf, den Blitz nicht zu vergessen.
Ziehen Sie Ihre Loungewear an, öffnen Sie Ihr MacBook und googeln Sie mit solchen Schlüsselwörtern. Wie erwartet scheint JShell in der Lage zu sein, eine Datei mit Java-Code zu lesen und ihren Inhalt auszuführen. Versuchen Sie es sofort. Da JShell verwendet wird, können die folgenden Beispiele nur mit Java 9 oder höher ausgeführt werden. Ich weiß es nicht.
Code
test.jsh
System.out.println("Kitty on your lap")
/ex
Dies ist alles, was Sie mit JShell tun müssen. Kein Semikolon erforderlich. / ex
ist der Endbefehl von JShell und ohne ihn befindet es sich im Zustand der interaktiven Ausführung von JShell.
Lauf
jshell test.jsh
Sie müssen lediglich den Dateinamen an den Befehl jshell
übergeben.
Es hat eine Weile gedauert, bis es ausgeführt wurde, nachdem ich Enter </ kbd> gedrückt hatte, aber es wurde nur "Kitty auf deinem Schoß" angezeigt. Es ist wunderbar.
Die Erweiterung der Datei lautet .jsh und folgt dem unten stehenden Referenzlink. Sie scheint jedoch auch mit anderen Erweiterungen zu funktionieren. Sie können .java verwenden, wenn Sie möchten. (Es ist verwirrend, aber ...)
Nun, da diese Ausführungsmethode JShell verwendet, sollte der Wert von JShell selbst der Wert dieser Ausführungsmethode sein. Mit anderen Worten, es hat die folgenden Vorzüge. (Ausgenommen die Vorteile der direkten Ausführung auf JShell, z. B. das Ausfüllen von Registerkarten)
javac
ausgeführt werdenEs ist wunderbar. (Wortschatz) Meine Brust, die bereits nach dem Baden brannte, wurde noch heißer.
Die obigen 4. und 5. Verdienste können im obigen Beispiel nicht bestätigt werden, daher werde ich ein weiteres Beispiel schreiben. Code, der eine Textdatei liest und die Zeilen anzeigt, die "hoge" enthalten.
test2.jsh
try(Stream<String> lines = Files.lines(Paths.get("test.txt"))) {
lines.filter(line -> line.contains("hoge"))
.forEach(System.out::println);
}
/ex
Sie können Stream, Dateien und Pfade verwenden, ohne sie explizit zu importieren. Files.lines () kann auch eine IOException auslösen, funktioniert jedoch ohne Code zur Behandlung der IOException. Es ist ziemlich schön, kurz für Java zu schreiben. In diesem Beispiel schien das Semikolon jedoch nicht weggelassen werden zu können. (Ein Fehler ist aufgetreten, wahrscheinlich ein interner Fehler bei der Kompilierung.)
Als mein Körper kälter wurde, wurde auch mein Kopf kälter.
Obwohl es für Java kurz ist und ohne explizite Kompilierung ausgeführt werden kann, ist es in Bezug auf Codekürzung und einfache Ausführung nicht mit Skriptsprachen wie Python und Ruby vergleichbar. Es scheint auch besser zu sein, den unten stehenden Referenzlink für Details zu lesen, aber es ist in Bezug auf die Leistung nachteilig im Vergleich zur Ausführung mit dem normalen "Java" -Befehl.
Wenn das passiert, kann ich mir nicht viele Anwendungsfälle vorstellen. In den meisten Fällen ist es besser, die Skriptsprache zu verwenden. Wenn Sie ein Snippet für eine schnelle Überprüfung der Java-Operation ausführen möchten, reicht es häufig aus, JShell direkt einzugeben. Kann es von Leuten verwendet werden, die nur Java schreiben können oder die sich speziell mit Java beschäftigen und Skripte schreiben möchten? Der große Nachteil ist, dass es nur eine solche Nischennachfrage decken kann ...
http://d.hatena.ne.jp/bitter_fox/20160703/1467577784
java
ausführen.Recommended Posts