web-dev-qa-db-fra.com

Comment importer des bibliothèques externes dans jshell Java 9?

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.

38
Akshay

J'ai essayé avec 9 Build 162 Linux 64-bit avec préparation:

  • Téléchargé guava-19.0.jar et commons-lang3-3.4.jar à /opt/libs

Les options suivantes sont disponibles:

  1. Spécifiez CLASSPATH variable d'environnement:

    $> CLASSPATH="/opt/libs/commons-lang3-3.4.jar:/opt/libs/guava-19.0.jar" bin/jshell

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

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

49
shizhz
  • Vous pouvez charger des artefacts maven dans JShell via cette version (modifiée) de JShell .
  • Il prend également en charge la commande /cls pour effacer la console JShell . Voir l'exemple Maven ci-dessous.

enter image description here

Essayez et partagez vos commentaires.

9
Pahari Chora

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 ,

  1. mvn clean install
  2. 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>
    
  3. commencer avec mvn jshell:compile

8
serv-inc

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' ':')
5
S. M. AMRAN

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.

0
Dinesh Chander