Bin*_*Mee 2 java linux jsp runtime.exec absolute-path
我需要从JSP执行linux命令.它工作正常.但是我需要通过JSP在linux的特定目录中启动一些sh文件.说/home/username/something/start.sh
try{
String command= "cd /home/username/something";
Runtime.getRuntime().exec(command);
Runtime.getRuntime().exec("./start.sh")
out.println("Child");
}
catch(Exception e)
{ out.println("Error");
}
Run Code Online (Sandbox Code Playgroud)
它说FIle或目录未找到.
我试过Runtime.getRuntime().exec("pwd"),它显示的东西像"java.lang.UNIXProcess@fc9d2b"!! :o
我需要更改pwd并通过jsp执行一些命令.我怎样才能做到这一点??任何帮助,将不胜感激.
你不应该(实际上,似乎你不能)设置这样的工作目录.Process由给定的每个对象Runtime.exec()都有自己的工作目录.
正如在如何使用Java运行时使用"cd"命令中所回答的那样?,你应该使用三个参数版本Runtime.exec(),在其中提供一个File将是工作目录.从它的javadoc:
在具有指定环境和工作目录的单独进程中执行指定的命令和参数.
或者甚至更好,ProcessBuilder与之一起使用ProcessBuilder.directory():
ProcessBuilder pb = new ProcessBuilder("start.sh");
pb.directory(new File("/home/username/something"));
Process p = pb.start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |