首頁 > Java > java教程 > 為什麼透過 Java 執行 JSch 使用者命令時會失敗並顯示「未找到」?

為什麼透過 Java 執行 JSch 使用者命令時會失敗並顯示「未找到」?

Susan Sarandon
發布: 2024-11-13 14:21:02
原創
873 人瀏覽過

Why do JSch User Commands Fail with

透過Java 執行時JSch 使用者指令失敗,並顯示「...找不到」

問題:

問題:

問題:
  • 問題:
  • 問題:

嘗試使用JSch 函式庫透過Java 執行特定的Unix命令會導致「...未找到」錯誤,儘管這些命令直接透過 SSH 用戶端運行時可以正常運行。

可能原因:

    偽終端分配:
  1. JSch 中的「exec」通道預設不分配偽終端(PTY),導致不同的結果環境設定和可能遺失的shell 腳本。
  2. PATH 修改:
  3. PATH 環境變數可能針對互動式和非互動式會話設定不同,導致執行檔無法使用。
解決方案:

建議:
  1. 使用完整路徑命令中的可執行文件,例如/bin/air sandbox run

  2. 啟動腳本調整: 修改啟動腳本以確保互動式和非互動式的 PATH 設定一致-互動式會話。
  • 替代方法:

登入 Shell 呼叫: 透過登入 shell 明確執行指令--login 開關。

    環境修改:
  • 在指令本身內設定必要的環境變量,例如PATH="$PATH;/path/to/air" && Air sandbox run .
PTY 啟用(不建議):雖然可能,但強制為「exec」通道分配PTY 可能會引入副作用相關問題:[某些Unix 指令失敗,並顯示“...找不到”,即使啟用了setPty](https ://stackoverflow.com/questions/34846613/certain-unix-commands-fail-with-not-found-when-executed-through-java-using-jsch-ev)[使用SSH 執行的命令.NET SshClient.RunCommand失敗並顯示“沒有這樣的檔案或目錄”]https://stackoverflow.com/questions/19774736/command-4gl-execulated-with-ssh-net-sshclient-runco​​mmand-fails-with-no-such -文件-o)

以上是為什麼透過 Java 執行 JSch 使用者命令時會失敗並顯示「未找到」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板