J'essayais de comprendre jshell et je cherchais à importer une bibliothèque externe. À ce jour, je ne voyais aucune suggestion/solution pour cela.
Quelqu'un peut-il me faire savoir s'il a déjà compris cela.
J'ai essayé avec 9 Build 162 Linux 64-bit
avec préparation:
guava-19.0.jar
et commons-lang3-3.4.jar
à /opt/libs
Les options suivantes sont disponibles:
Spécifiez CLASSPATH
variable d'environnement:
$> CLASSPATH="/opt/libs/commons-lang3-3.4.jar:/opt/libs/guava-19.0.jar" bin/jshell
Spécifiez le chemin de classe avec l'option jshell:
$> bin/jshell --class-path /opt/libs/guava-19.0.jar:/opt/libs/commons-lang3-3.4.jar
Configurer le contexte d'évaluation dans jshell session avec la commande /env
, /reset
ou /reload
(ces commandes sont différentes, vous pouvez vérifier avec ses informations d'aide), prenez /env
comme exemple:
jshell> /env -class-path /opt/libs/commons-lang3-3.4.jar:/opt/libs/guava-19.0.jar
Et puis vous pouvez soit import org.Apache.commons.lang3.StringUtils
ou import com.google.common.base.Optional;
.
Essayez et partagez vos commentaires.
Un moyen plus simple dans maven, voir Dans JShell, comment importer le chemin de classe à partir d'un projet Maven : Dans votre répertoire de projet, exécutez:
mvn com.github.johnpoth:jshell-maven-plugin:1.0:run
Si vous avez un maven pom.xml
, vous pouvez utiliser https://github.com/bitterfox/jshell-maven-plugin . Cela utilise toutes les dépendances comme chemin de classe. Le plugin n'est pas actuellement dans maven, vous devez donc cloner le dépôt: git clone https://github.com/bitterfox/jshell-maven-plugin.git
. Alors ,
mvn clean install
ajoutez ce qui suit à votre pom.xml
:
<build>
<plugins>
<plugin>
<groupId>net.Java.openjdk.shinyafox</groupId>
<artifactId>jshell-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</plugin>
</plugins>
</build>
commencer avec mvn jshell:compile
Lancer Jshell en important tous les fichiers jars d'un répertoire
Soit le répertoire est ~/app/Java/jars/
jshell --class-path $(ls -d ~/app/Java/jars/* | tr '\n' ':')
Si vous utilisez Fish Shell, vous pouvez définir l'alias dans votre fichier de configuration de poisson. Voici comment procéder. Dans votre configuration de poisson (~/.config/fish/config.fish), ajoutez
alias jshell "~/.jenv/versions/12.0.1/bin/jshell --class-path (find ~/.m2/repository/ -name \"*.jar\" | tr '\n' ':')"
Cela chargera tous les pots de votre chemin de classe.
Remarque: Modifiez le chemin jshell et le chemin du référentiel jars en conséquence.