Tag: shell

从外部目录运行Shell脚本:没有这样的文件或目录

我有一个shell脚本文件,我想从java运行。 我的java工作空间目录与脚本的目录不同。 private final String scriptPath = “/home/kemallin/Desktop/”; public void cleanCSVScript() { String script = “clean.sh”; try { Process awk = new ProcessBuilder(scriptPath + script).start(); awk.waitFor(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } 我得到这个错误: java.io.IOException: Cannot run program “cat /home/kemallin/Desktop/capture-03.csv | awk -F […]

在java中运行bash shell脚本

我想从我的程序中运行一个shell脚本,但似乎没有做任何事情。 我直接在linux终端运行相同的命令,它工作正常,所以我猜它是我的java代码。 正如您所看到的,我首先使用PrintWriter将命令写入shell脚本,但我希望这不会影响shell脚本本身的运行。 任何帮助,将不胜感激! public static void main(String[] args) { // TODO Auto-generated method stub String nfdump = “nfdump -o csv -r /home/shane/Documents/nfdump/nfcapd.201211211526>blank.txt”; try { FileWriter fw = new FileWriter(“/home/shane/Documents/script.sh”); PrintWriter pw = new PrintWriter(fw); pw.println(“#!/bin/bash”); pw.println(nfdump); pw.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } Process proc = null; try […]

使用JSch执行的命令与SSH终端的行为不同(绕过确认提示消息“是/”否“)

注意:我登录设备而不是计算机,因此我登录配置模式(而不是非配置模式)。 我在Java中使用JSch库,使用SSH协议登录。 我这样登录: channel = con.openChannel(“shell”); channel.connect(); 在某些情况下,当我通过shell发送需要su (配置模式)权限(更改配置)的命令时,此代码会绕过提示确认消息 – 这可能会阻止其他用户更改配置。 如果我使用SSH客户端/终端手动输入命令,我必须输入yes进行确认。 有谁知道为什么? 谢谢。 [ ] 当我通过JSch登录时,我甚至可以执行配置命令,当我没有向要执行的命令数组插入“是”时。

从Java Synchronously运行shell脚本

我试图从Java执行Bash Shell脚本,并使用这段代码运行良好。 public void executeScript() { try { new ProcessBuilder(“myscript.sh”).start(); System.out.println(“Script executed successfully”); } catch (IOException e) { e.printStackTrace(); } } 上面的代码异步运行。 但我想要实现的是同步执行代码。 我希望Java进程等到脚本执行完成后再执行下一批代码。 总而言之,我希望在批处理文件(“myscript.sh”)完成执行后执行“打印语句 – 成功执行脚本”。 谢谢

需要示例Java代码来运行一个shellcript

我尝试了许多不同的例子,但它没有用。 我真的很感激一些示例Java代码来运行shell脚本。

java Runtime.getRunTime()。exec&wildcards?

我正试图通过使用删除垃圾文件 Process p = Runtime.getRuntime().exec(); 只要我不使用通配符,它​​工作正常,即这工作: Process p = Runtime.getRuntime().exec(“/bin/rm -f specificJunkFile.java”); 而以下会抛出“没有这样的文件或目录”: Process p = Runtime.getRuntime().exec(“/bin/rm -f *.java”); 我应该能够做到这里概述的所有好事,对吧?