有谁知道如何从java应用程序执行shell脚本? 我使用win 7开发java应用程序,脚本文件在我的硬盘上。如何从Java应用程序执行UNIX Shell脚本?
回答
您可以在java.lang.Runtime
类中使用exec()
系列方法。当然,如果不下载像MinGW或Cygwin这样的软件来支持它(也许你的意思是当你的程序在另一台机器上运行时你会执行该脚本),那么你不能在Windows机器上执行UNIX shell脚本。
您能否提供代码狙击如何使用MinGW或Cygwin? – itro 2012-02-27 10:24:54
这些都是您安装的在Windows上提供UNIX命令行工具(即“bash”,“ls”,“cat”,“mv”和数百个)的环境。然后,您可以像在UNIX上一样从Java运行它们 - 例如,请参阅@ SarathKumarSivan的答案。 – 2012-02-27 12:07:50
首先,要在Windows 7系统上执行Unix shell脚本,您需要一个Unix shell。有几种可用的,包括cygwin。假设你使用bash(这些日子最常见),要执行的命令是bash -c scriptname
来执行你的脚本。如果您只是执行Windows cmd或bat文件,则该命令类似于cmd /c scriptname
您应检查cmd的帮助以验证此操作。
一旦你开始这个过程,你需要立即启动一个线程开始读取它的stdout。您需要从流程中获取输出流并开始读取。如果你不这样做,两个过程之间的管道将被填满,并且子过程将挂起。您还需要为子进程的stderr执行相同的操作,除非在创建进程时使用该选项合并两个流。
希望这将成为你的目的:
import java.io.IOException;
import java.io.InputStream;
public class RunShellScript {
public static void runShellScript(String unixCommand) throws IOException, InterruptedException {
ProcessBuilder processBuilder = new ProcessBuilder("bash", "-c", unixCommand);
processBuilder.redirectErrorStream(true);
Process shellProcess = processBuilder.start();
InputStream inputStream = shellProcess.getInputStream();
int consoleDisplay;
while((consoleDisplay=inputStream.read())!=-1) {
System.out.println(consoleDisplay);
}
try {
inputStream.close();
} catch (IOException iOException) { }
}
public static void main(String[] args) throws IOException, InterruptedException {
String unixCommand = "sh hello-world.sh";
runShellScript(unixCommand);
}
}
上面的代码将运行脚本包含在hello-world.sh文件,它会显示shell脚本控制台上的输出。
- 1. 通过JAVA应用程序运行unix shell脚本
- 2. 通过java程序执行shell脚本
- 3. 如何从Java小程序执行shell脚本
- 4. 如何从Java类执行shell脚本程序文件
- 5. 如何从unix shell脚本获取java程序完成状态?
- 6. 执行shell脚本程序
- 7. 如何使用java执行shell脚本
- 8. 访问UNIX服务器并从java应用程序运行shell脚本
- 9. 从scala应用程序执行shell脚本
- 10. 如何从shell脚本调用另一个shell脚本的Unix
- 11. SAS程序调用UNIX Bash Shell脚本
- 12. 执行从Java,Shell脚本Shell脚本已经阅读操作
- 13. 从Java代码执行Shell脚本
- 14. 需要从java执行shell脚本
- 15. 从Java应用程序执行Pig
- 16. 如何从silverlight应用程序运行shell脚本?
- 17. 如何从Android应用程序运行shell脚本
- 18. 如何从我的Android应用程序执行shell脚本文件
- 19. 如何从bash shell执行.py脚本
- 20. 如何从php/html执行shell脚本?
- 21. 如何从LaTeX执行shell脚本?
- 22. 执行应用程序后运行shell脚本命令
- 23. 使用Java从Web应用程序执行R脚本
- 24. 从shell脚本执行symbolicatecrash
- 25. 从shell执行R脚本
- 26. 从shell脚本执行SQL
- 27. 从mac执行Shell脚本
- 28. 在shell脚本执行程序的linux
- 29. 在SHELL脚本上执行C程序
- 30. 在shell脚本中执行java程序时使用双引号
类似于http://stackoverflow.com/questions/525212/how-to-run-unix-shell-script-from-java-code – 2012-02-21 12:25:35
是什么让你认为你可以在Windows 7上运行UNIX Shell脚本机器呢? – 2012-02-21 12:25:49
应用程序应该在windows上运行,而unix shell脚本应该通过该应用程序在Unix服务器上执行。 – itro 2012-02-22 09:13:32