如何使用来自 Java 文本字段的用户输入运行 .sh 脚本?

     2023-02-22     91

关键词:

【中文标题】如何使用来自 Java 文本字段的用户输入运行 .sh 脚本?【英文标题】:How run .sh script with user input from textfield in Java? 【发布时间】:2020-02-07 13:57:42 【问题描述】:

我尝试使用来自 txtfield 的用户输入来启动 .sh 脚本。 思路:用户在 txt 字段中写入参数。当按下按钮时,脚本以这个参数开始。

我的代码:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) 
                                         
String valueURL;
valueURL = URLtxt.getText().toString();              
ProcessBuilder processBuilder = new ProcessBuilder();
// -- Linux --
// Run a shell command
processBuilder.command("bash", "-c","nikto -h", valueURL,");     

try 

Process process = processBuilder.start();
StringBuilder output = new StringBuilder();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) 
output.append(line + "\n");         

int exitVal = process.waitFor();
if (exitVal == 0)                                            
 
    this.hide();
    ScanWS sws = new ScanWS() ;
    sws.setVisible(true);

【问题讨论】:

你的代码的结果是什么? 引用显然是错误的。你可能想要processBuilder.command("bash", "-c","nikto -h \"$1\"", "", valueURL); 之类的东西——注意bash -c "script; more script" 之后的第一个参数是一个占位符(它用于填充$0)。 但是bash -c 在这里没有做任何有用的事情;可能简化为processBuilder.command("nikto", "-h", valueURL); 结果是带有参数 -h 和 web url 的命令“nikto”的开始。 如果我使用例如 processBuilder.command("bash", "-c","nikto -h google.com");它工作正常。但我不会将来自我的 GUI 的 jtextfield 中的字符串放在 google.com 的位置 【参考方案1】:

    在 UI 线程中触发了事件监听器,因此处理必须快速。你的监听器实现等待一个外部进程,它可以冻结你的用户界面。所有的进程触发和关心逻辑都必须在一个单独的线程中开始。

    流程是一个相当古老的结构,它存在输入/输出问题。进程在其工作期间将某些内容写入其输出流的缓冲区,当缓冲区全部填满时 - 进程挂起,等待输出流腾出一些空间。 因此,process.inputprocess.output 处理器也必须在单独的线程中工作。

【讨论】:

Java 文本字段输入问题

...我通过尝试使用Name()函数输出Name进行了检查。有人对我如何提取信息并将其存储到QName的名称字段有任何想法吗?提前致谢CodeformyQNam 查看详情

如何让用户在不使用输入字段的情况下将文本输入 <li>? [关闭]

】如何让用户在不使用输入字段的情况下将文本输入<li>?[关闭]【英文标题】:Howtoletusersentertextinto<li>withoutusinginputfields?[closed]【发布时间】:2012-06-2016:10:33【问题描述】:文本占位符是列表项的列表。有什么想法吗?... 查看详情

使用来自单独的表视图控制器的选定单元格填充文本字段

】使用来自单独的表视图控制器的选定单元格填充文本字段【英文标题】:PopulatingaTextFieldwithaSelectedCellfromaSeparateTableViewController【发布时间】:2014-03-0407:26:55【问题描述】:我有一个工作应用程序,只需要一些修改。这是一个带... 查看详情

来自Objective c中数组项的自动完成文本字段

】来自Objectivec中数组项的自动完成文本字段【英文标题】:AutoCompletetxtfieldfromarrayitemsinObjectivec【发布时间】:2017-11-1311:50:12【问题描述】:我有一个文本字段,每当用户在其中输入时,它都会显示tableView中数组中的相关项目以... 查看详情

java示例代码_如何在android上从文本字段和电子邮件中获取用户输入

java示例代码_如何在android上从文本字段和电子邮件中获取用户输入 查看详情

如何在 Swift 中创建自动完成文本字段

】如何在Swift中创建自动完成文本字段【英文标题】:HowtocreateautocompletetextfieldinSwift【发布时间】:2016-06-0808:16:01【问题描述】:我希望能够在iOS中创建一个自动完成的文本字段。我有一个用于选择客户端的表单,其中用户必须... 查看详情

如何使用文本字段将数字输入数组(swift3)

】如何使用文本字段将数字输入数组(swift3)【英文标题】:Howtousetextfieldtoenternumbersintoaarray(swift3)【发布时间】:2017-05-0603:00:24【问题描述】:我有一个文本字段,我希望用户能够在其中输入数组的数字。理想情况下,按钮会... 查看详情

如何在程序运行时打印在文本字段中输入的文本?

】如何在程序运行时打印在文本字段中输入的文本?【英文标题】:HowcanIprintthetextenteredinatextfieldwhiletheprogramruns?【发布时间】:2021-12-1013:53:29【问题描述】:这是我目前拥有的代码:publicStringgetLength()returnlengthEntry.getText();在另... 查看详情

如何使输入文本字段用*替换任何字符? [复制]

】如何使输入文本字段用*替换任何字符?[复制]【英文标题】:Howtomakeinputtextfieldreplaceanycharacterby*?[duplicate]【发布时间】:2014-02-1605:18:26【问题描述】:我正在使用用户身份验证的网站上工作。当用户提交身份验证表单时,浏览... 查看详情

如何让用户在 SwiftUI 文本字段中仅使用数字输入货币,同时保留 $ 和 .?

】如何让用户在SwiftUI文本字段中仅使用数字输入货币,同时保留$和.?【英文标题】:HowtomakeitsothatuserenterscurrencyonlywithnumbersinSwiftUItextfield,whilepreservingthe$andthe.?【发布时间】:2021-01-1822:37:16【问题描述】:现在,我有以下内容:... 查看详情

当用户输入通过来自另一个组件的道具的文本时,在反应 js 中不起作用

...问题描述】:我正在尝试连接在文本字段中输入的数据,使用道具传递来自另一个无状态组件的数据。不知道为什么它不起作用。我创建了两个组件app.js2.title 查看详情

永久保存来自闪亮的文本输入?

】永久保存来自闪亮的文本输入?【英文标题】:Savingtextinputfromshinypermanently?【发布时间】:2015-01-1718:56:03【问题描述】:我们正在构建一个Shiny应用并计划分享到shinyapps.io的链接。我们想知道是否有任何方法可以收集用户的反... 查看详情

来自动态添加的文本字段的输入未通过 request()->validate() 数组

】来自动态添加的文本字段的输入未通过request()->validate()数组【英文标题】:InputfromDynamicallyaddedtextfieldsarenotgettingthroughtotherequest()->validate()array【发布时间】:2021-12-1015:50:21【问题描述】:我有一个表单,用户可以在其中输... 查看详情

如何使用 Swift 在文本字段(从右到左)上输入货币格式?

】如何使用Swift在文本字段(从右到左)上输入货币格式?【英文标题】:Howtoinputcurrencyformatonatextfield(fromrighttoleft)usingSwift?【发布时间】:2015-04-2120:57:45【问题描述】:我有一个号码,比如说0.00。当用户点击1.我们应该有0.01当... 查看详情

如何使用 Swift 在文本字段(从右到左)上输入货币格式?

】如何使用Swift在文本字段(从右到左)上输入货币格式?【英文标题】:Howtoinputcurrencyformatonatextfield(fromrighttoleft)usingSwift?【发布时间】:2015-04-2120:57:45【问题描述】:我有一个号码,比如说0.00。当用户点击1.我们应该有0.01当... 查看详情

使用来自单独表单 Access 2007 的用户输入自动填充表单中的字段

】使用来自单独表单Access2007的用户输入自动填充表单中的字段【英文标题】:Auto-populateafieldinaformwithuserinputfromaseperateformAccess2007【发布时间】:2012-07-0521:40:21【问题描述】:我的设置:我有两个表:tblAuthors和tblBooks。tblAuthors包... 查看详情

如何在 UITextField 子类中拦截来自键盘的文本输入事件

】如何在UITextField子类中拦截来自键盘的文本输入事件【英文标题】:HowdoyouinterceptatextinputeventfromkeyboardinaUITextFieldsubclass【发布时间】:2017-05-1409:35:41【问题描述】:背景我创建了UITextField的子类,我想截取用户输入的任何字符... 查看详情

是否可以像 Whatsapp messenger 一样使用预填充文本输入字段的文本创建指向用户的链接?

】是否可以像Whatsappmessenger一样使用预填充文本输入字段的文本创建指向用户的链接?【英文标题】:IsitpossibletocreatelinktouserwithatextwhichprepopulatetextinputfieldjustlikeWhatsappmessengerdo?【发布时间】:2019-02-1211:52:38【问题描述】:在Whatsa... 查看详情