Exécuter du code Java de manière scriptée

introduction

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.

essayer

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 ...)

mérite

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)

C'est merveilleux. (vocabulaire) Ma poitrine, qui brûlait déjà après avoir pris un bain, est devenue encore plus chaude.

Essayez un peu plus

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)

Démérite

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 ...

Résumé

Lien de référence

http://d.hatena.ne.jp/bitter_fox/20160703/1467577784

De côté

  • Si vous avez Java 11 ou supérieur, vous pouvez directement exécuter une source Java normale avec la commande java.
  • http://nowokay.hatenablog.com/entry/20180617/1529239404
  • Il est dangereux de dormir en trempant dans le bain. Si vous êtes fatigué, soyez prudent
  • Il est dangereux de programmer pendant le trempage dans le bain. Si vous le faites à vos risques et périls

Recommended Posts

Exécuter du code Java de manière scriptée
CONSEILS relatifs au code Java
Exemple de code Java 02
Exemple de code Java 03
Exemple de code Java 04
Exemple de code Java 01
Code de caractère Java
Exemple de code de signature électronique (JAVA)
Collection d'exemples de code parallèle Java
Collection de méthodes de code de test Java
[Windows] Le code Java est déformé
Java
Java avec Visual Studio Code
Écrire du code de type Java8 en Java8
Java
Devinez le code de caractère en Java
Coder Java depuis Emacs avec Eclim
Environnement Java Spring dans vs Code
Nouvelles fonctionnalités de Java 9 et exemple de code
[Java] Élimination du code de plaque de chaudière à l'aide de Lombok
Construire Java avec Mac vs Code
Code de création de chaîne arbitraire par Java
Exécuter du code Java packagé avec des commandes
Code source Java lecture de la classe java.lang.Math
[Java] Élimination du code de plaque de chaudière avec Lombok 2
Exécutez le script shell de tomcat sur java8
Environnement de développement Java (Mac, VS Code)
[Android] Convertir le code Java Android en Kotlin
Exemple de code utilisant Minio de Java
Structure de base du code source Java
Apprendre Java (0)
Étudier Java ―― 3
[Java] tableau
Java protégé
[Java] Annotation
Préparer l'environnement de développement Java avec VS Code
Tableau Java
Étudier Java ―― 9
Java scratch scratch
Méthodes Java
Méthode Java
java (constructeur)
Tableau Java
[Java] ArrayDeque
java (remplacement)
java (méthode)
Journée Java 2018
Chaîne Java
java (tableau)
Java statique
Sérialisation Java
java débutant 4
JAVA payé
Étudier Java ―― 4
Java (ensemble)
tri shell java
[Java] compareTo
Étudier Java -5
Lier le code Java et C ++ avec SWIG
java réfléchissant 获 获 举