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
911 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!

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