Aimez-vous les bains, tout le monde? Je l'aime. C'est un bon moment pour se tremper dans un bain chaud et se détendre. C'est étrange, et quand vous faites autre chose que la programmation, vous avez quelque chose à voir avec la programmation. C'était également le cas. Un jour, alors que j'étais abasourdi dans le bain comme d'habitude, ça a soudainement flashé. "Est-il possible pour JShell de lire un fichier dans lequel du code Java est écrit et d'exécuter son contenu?" "Si cela peut être fait, peut-il exécuter du code Java comme un script?" main.
Il semble qu'il y ait des gens dans le monde qui programment en prenant un bain, mais malheureusement je n'ai pas atteint ce niveau, donc je ne peux pas l'essayer tout de suite. Je ne pouvais pas m'en empêcher, alors j'ai quitté la salle de bain tôt, en faisant attention de ne pas oublier le flash.
Mettez vos vêtements de détente, ouvrez votre MacBook et google avec des mots-clés comme celui-là. Comme prévu, JShell semble être capable de lire un fichier avec du code Java et d'exécuter son contenu. Essayez immédiatement. Puisque JShell est utilisé, les exemples suivants ne peuvent être exécutés qu'avec Java 9 ou supérieur. Je ne sais pas.
code
test.jsh
System.out.println("Kitty on your lap")
/ex
Puisqu'il s'agit de JShell, c'est tout ce dont vous avez besoin pour le code. Pas besoin de point-virgule. / ex
est la commande de sortie de JShell, et sans elle, il sera dans l'état d'exécution interactive de JShell.
Courir
jshell test.jsh
Tout ce que vous avez à faire est de passer le nom du fichier à la commande jshell
.
Il a fallu un certain temps pour qu'il s'exécute après avoir appuyé sur Entrée </ kbd>, mais il a juste affiché "Kitty sur vos genoux". C'est merveilleux.
L'extension du fichier est .jsh en suivant le lien de référence ci-dessous, mais il semble également fonctionner avec d'autres extensions. Vous pouvez utiliser .java si vous le souhaitez. (C'est déroutant, mais ...)
Eh bien, puisque cette méthode d'exécution utilise JShell, le mérite de JShell lui-même devrait être le mérite de cette méthode d'exécution telle qu'elle est. En d'autres termes, il présente les avantages suivants. (À l'exclusion des avantages de l'exécution directe sur JShell, tels que l'achèvement des onglets)
javac
C'est merveilleux. (vocabulaire) Ma poitrine, qui brûlait déjà après avoir pris un bain, est devenue encore plus chaude.
Les 4e et 5e mérites ci-dessus ne peuvent pas être confirmés dans l'exemple ci-dessus, je vais donc écrire un autre exemple. Code qui lit un fichier texte et affiche les lignes qui contiennent "hoge".
test2.jsh
try(Stream<String> lines = Files.lines(Paths.get("test.txt"))) {
lines.filter(line -> line.contains("hoge"))
.forEach(System.out::println);
}
/ex
Vous pouvez utiliser Stream, Files et Paths sans les importer explicitement. En outre, Files.lines () peut lever une IOException, mais cela fonctionne sans écrire de code pour gérer l'exception IOException. C'est assez agréable d'écrire court pour Java. Cependant, dans cet exemple, il semblait que le point-virgule ne pouvait pas être omis. (Une erreur s'est produite, probablement une erreur interne à la compilation)
Au fur et à mesure que mon corps se refroidissait, ma tête aussi.
Bien qu'il soit l'abréviation de Java et puisse être exécuté sans compilation explicite, il n'est pas comparable aux langages de script tels que Python et Ruby en termes de brièveté du code et de facilité d'exécution.
De plus, il semble préférable de lire le lien de référence ci-dessous pour plus de détails, mais il est désavantageux en termes de performances par rapport à son exécution avec la commande normale java
.
Lorsque cela se produit, je ne peux pas penser à de nombreux cas d'utilisation. Dans la plupart des cas, il est préférable d'utiliser le langage de script, et si vous souhaitez exécuter un extrait de code pour une vérification rapide des opérations Java, il suffit souvent de taper directement dans JShell. Peut-il être utilisé par des personnes qui ne peuvent écrire que Java ou qui sont particulières à Java et qui souhaitent écrire des scripts? Le gros inconvénient est qu'il ne peut couvrir qu'une telle demande de niche ...
http://d.hatena.ne.jp/bitter_fox/20160703/1467577784
java
.Recommended Posts