我想在其中运行一些unix/shell
命令Java
并处理输出。我曾经用过getRuntime.exec()
,但是对于某些命令,例如,它没有给出正确的输出ls directory_path/*.tar.gz
。对于该命令,我的程序没有给出任何输出,但给出了错误提示No such file or directory
。但是,同一命令在命令提示符下给出正确的输出。
还有其他方法可以执行包含Java通配符的命令吗?
还有其他方法可以执行包含Java通配符的命令吗?
就在这里。
您的代码中存在三个潜在的问题:
请遵循我在此处提供的示例:
* [如何使一个Java程序同时打印out.println()和err.println()语句?](https://stackoverflow.com/questions/3754841/how-to-make-a-java-program-to-print-both-out-println-and-err-println-)
*
如果您天真地通过,则shell扩展将不起作用Runtime.exec
。您必须/bin/bash
显式地进行。
如果您尝试列出内容,则directory_path/*.tar.gz
应该知道(如果不是以a开头/
),directory_path
将相对于 当前工作目录 进行解析。首先尝试给出绝对路径以确保它可以工作,然后尝试找出为什么找不到相对路径。
这是一个应该起作用的完整示例:
Process proc = new ProcessBuilder("/bin/bash", "-c",
"ls /.../directory_path/*.tar.gz").start();
Reader reader = new InputStreamReader(proc.getInputStream());
int ch;
while ((ch = reader.read()) != -1)
System.out.print((char) ch);
reader.close();
我正在尝试编写一个脚本,如果文件中不存在特定字符串,它将执行某些操作。 我知道为了检查string是否可用,我们可以做如下操作: 但是如何将运算符与shell命令相结合?
问题内容: 我有一种情况想要在Python中执行以下shell命令并获取输出, 我可以使用此python代码在python中执行上述shell命令, 但是,由于我 不想使用“ shell = True”选项 ,因此我尝试了以下python代码, 我想知道为什么我参考网页中的描述时输出为“ None”:http : //docs.python.org/library/subprocess.html#
问题内容: 从Java运行Unix命令非常简单。 但是可以从Java代码运行Unix Shell脚本吗?如果是,从Java代码中运行Shell脚本是一个好习惯吗? 问题答案: 你应该真正看一下Process Builder。它确实是为这种事情而构建的。
当我在终端中点击curl代码时,我得到了200,所以我假设我编写testStytch的方式到目前为止还可以。但是,一旦我试图集成到java文件中,我就会收到错误的请求响应。我现在有点不知所措。https://github.com/libetl/curl这就是我所说的转换curl代码。 这是我得到的错误。https响应代理{HTTP/1.1 400错误请求[日期:星期四,2021 23:21:424
需要明确的是:这个问题不是关于如何像commons CLI/JCommando等那样解析程序的参数。 我想用Java编写Unix命令。虽然我不想自己写大部分东西,但我打算使用图书馆,并寻求您的帮助。 我找到了用于解析参数的commons cli,比如getopt。然而,我正在寻找一个类似Perl的diamond运算符或Python的fileinput库的最后一个库。 unix命令(或我来自Linu