Maison > Java > javaDidacticiel > Pourquoi les commandes utilisateur JSch échouent-elles avec « Introuvable » lorsqu'elles sont exécutées via Java ?

Pourquoi les commandes utilisateur JSch échouent-elles avec « Introuvable » lorsqu'elles sont exécutées via Java ?

Susan Sarandon
Libérer: 2024-11-13 14:21:02
original
857 Les gens l'ont consulté

Why do JSch User Commands Fail with

Les commandes utilisateur JSch échouent avec "... introuvable" lorsqu'elles sont exécutées via Java

Problème :

Les tentatives d'exécution de commandes Unix spécifiques via Java à l'aide de la bibliothèque JSch entraînent une erreur "... introuvable", malgré le bon fonctionnement des commandes lorsqu'elles sont exécutées directement via un client SSH.

Raisons possibles :

  • Allocation de pseudo-terminal : Le canal "exec" dans JSch n'alloue pas de pseudo-terminal (PTY) par défaut, conduisant à un autre configuration de l'environnement et scripts shell potentiellement manquants.
  • Modification PATH : La variable d'environnement PATH peut être définie différemment pour les sessions interactives et non interactives, entraînant l'indisponibilité des exécutables.

Solutions :

Recommandé :

  1. Commande Chemin complet : Utilisez le chemin complet pour l'exécutable dans la commande, par exemple /bin/air sandbox run .
  2. Ajustement du script de démarrage : Modifiez les scripts de démarrage pour garantir des paramètres PATH cohérents pour les utilisateurs interactifs et non -sessions interactives.

Approches alternatives :

  1. Invocation du shell de connexion : Exécutez la commande explicitement via le shell de connexion en utilisant le commutateur --login.
  2. Modification de l'environnement : Définissez les variables d'environnement nécessaires dans la commande elle-même, par exemple, PATH="$PATH;/path/to/air" && air sandbox run .
  • Activation PTY (non recommandée) : Bien que cela soit possible, forcer l'allocation PTY pour le canal "exec" peut introduire des effets secondaires effets.

Problèmes connexes :

  • [Certaines commandes Unix échouent avec "... not found", même avec setPty activé](https ://stackoverflow.com/questions/34846613/certain-unix-commands-fail-with-not-found-when-executed-through-java-using-jsch-ev)
  • [Commande exécutée avec SSH .NET SshClient.RunCommand échoue avec « Aucun fichier ou répertoire de ce type »]https://stackoverflow.com/questions/19774736/command-4gl-executed-with-ssh-net-sshclient-runcommand-fails-with-no-such -file-o)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal