问题标签 [expectj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
718 浏览

java - 我将如何使用 ExpectJ 在 Java 中调用 pg_dump(在 PostgreSQL 8.4 上)?

我在很多地方都看到过这个问题,也就是说,以编程方式从 PostgreSQL 进行备份的问题。我的解决方案是使用 ExpectJ,但我无法让我的代码正常工作。

我有以下代码:

但是,在 shell.expect 行上,它超时了。

当我从命令提示符运行此命令时,它如下所示:

C:\Documents and Settings\bobjonesthe3rd>"C:\Program Files\PostgreSQL\8.4\bin\pg_dump" -h localhost -U myUserName myDB
密码:

所以,我知道它会提示输入密码,但 ExpectJ 出于某种原因没有收到提示。

任何帮助将非常感激。

谢谢,马特

0 投票
2 回答
2006 浏览

java - 如何使用 ExpectJ 工具在 java 代码中运行 Unix shell 脚本?

这是我的 hello.sh shell 脚本

==================================================== ======

这是我的 Java 代码

==================================================== =====================

这是我的输出

名称://这是它要求的 wat

abcd //这是我给的..什么也没发生

==================================================== ==========

我已经更正了我上面的java代码..

0 投票
2 回答
778 浏览

java - 在java中运行ssh命令时出错

我正在尝试以这种方式在 Eclipse 中运行 ssh 命令

但我认为这是错误-

如果我尝试按照以下方式进行操作,

并执行,我得到这个错误

另外,代码只执行了一半,我收到了这条消息-

最后我面临一个超时异常

有什么建议么?我不确定这些错误消息是什么意思。

0 投票
1 回答
2306 浏览

java - JSCH Java 小程序

我在网页中嵌入了一个 JSCH SSH Java 小程序,需要知道是否可以运行脚本(任何语言,如 PHP)来自动登录和运行命令。我听说过 expect4j 和 java 机器人,但看不到任何实现它的方法。请记住,我对 Java 不是很好,所以我对它一无所知。任何帮助表示赞赏。

0 投票
0 回答
588 浏览

java - 如何使用 Java 用交互式登录包装 rsync?

我正在尝试使用 java 包装 rsync,并且在处理交互式登录时遇到了困难。我可以让 unix 命令行实用程序expect工作,但我似乎无法找出 java 等效的ExpectJ. 这是我当前的代码:

当我运行它时,我收到错误:

似乎没有启动正常的 ssh 交互式登录,因为我正在从 java 调用 rsync。使用的类似 shell 脚本expect工作得很好。此外,当我使用公钥授权时,类似的 java 代码似乎可以工作。如果我只是想使用ssh,我会使用 JSch 之类的库,但我并不真正信任任何 java rsync 库,所以我想包装命令行工具。

谢谢你的帮助!

0 投票
1 回答
653 浏览

java - 用于 Telnet 的 ExpectJ

我想在 Java 中使用等价的 Expect。这是一个简单的代码:

结果,我得到了垃圾:

出口:

但是,当我从命令行使用 telnet 时,我得到了连接。

请帮忙。

0 投票
2 回答
1203 浏览

java - Java 库通过 ssh 在远程服务器上运行多个不相关的命令

我的 Java 应用程序必须像这样工作:

  1. 用户在 GUI 中选择 bash 命令并按“发送”。
  2. 应用程序为每个命令返回不同且独立的答案(例如,我们可以将它们存储在不同的文件中)。
  3. 每个命令都以交互方式运行,而不是批量运行(不能像“ls\n pwd \n”等)
  4. 在每个命令之后,应用程序将检查结果是否正常。如果是这样,它将发送下一个命令。
  5. 我们需要su <user>在远程主机上执行。

这将是一个更大应用程序的插件,因此“尝试其他”(即 RPC、Web 服务)之类的答案对我没有帮助:(

据我了解,我必须使用 SHELL 或至少保持通道连接。

我已经测试过 jsch 、 sshj 和 ethz.ssh2 但结果很糟糕。

我已经通过stackoverflow对以下问题的答案进行了挖掘:“sending-commands-to-server-via-jsch-shell-channel”等。但它们都专注于在一行中发送整个命令。我需要一个交互式的、持久的 SSH 会话。

我用过ExpectJ(对输出流做了一点修改)。它已经解决了第 1、3、4、5 点。

但是第 2 点存在问题。在我的应用程序中,我需要得到单独的答案。但我们不会知道它们的长度。命令提示符可以不同。任何人都知道如何“破解”ExpectJ,所以它会更加同步吗?我正在寻找这样的行为:发送,等待完整答案,发送,等待......我尝试了一些基本的同步技巧,但这通常会导致超时和连接丢失。

0 投票
1 回答
981 浏览

java - 如何以同步方式使用ExpectJ(等待未知内容的答案)?

我的 Java 应用程序必须像这样工作:

  • 用户在 GUI 中选择 bash 命令并按“发送”。
  • 应用程序为每个命令返回不同且独立的答案(例如,我们可以将它们存储在不同的文件中)。
  • 每个命令都以交互方式运行,而不是批量运行(不能像“ls\n pwd \n”等)
  • 在每个命令之后,应用程序将等待并检查结果是否正常。如果是这样,它将发送下一个命令。
  • 我们需要在远程主机上执行 su 。

我用过ExpectJ(对输出流做了一点修改)。它已经解决了第 1、3、4、5 点。

但是第 2 点存在问题。在我的应用程序中,我需要得到单独的答案。但我们不会知道它们的长度。命令提示符可以不同。任何人都知道如何“破解”ExpectJ,所以它会更加同步吗?我正在寻找这样的行为:发送,等待完整答案,发送,等待......我尝试了一些基本的同步技巧,但这通常会导致超时和连接丢失。

这个问题与我的老问题有关:

Java 库通过 ssh 在远程服务器上运行多个不相关的命令

0 投票
1 回答
382 浏览

jsch - 如何处理expectj中的密码提示

我想通过expectj(实际上是jsch)发送“su root”命令。它要求密码。有没有办法在 expectj 中处理它?

0 投票
2 回答
3228 浏览

java - 如何使用java实现expect“interact”命令

我想使用 java 实现期望的“交互”命令。在预期中,可以打开一个 ssh 会话,进行身份验证,然后使用“interact”命令将控制权交还给用户。用java可以吗?我尝试过使用 expectJ、expect4J 和 expectForJava,但文档很少,几乎没有关于如何执行此操作的示例。TIA。

更新:对于“交互”命令参考,请查看:http ://wiki.tcl.tk/3914

“Interact 是一个 Expect 命令,它将当前进程的控制权交给用户,以便将击键发送到当前进程,并返回当前进程的 stdout 和 stderr。”