可能的重复:
ProcessBuilder 重定向输出
下面的代码:
ProcessBuilder pb = new ProcessBuilder(new String[] {"echo", "some text", ">", "test"});
Run Code Online (Sandbox Code Playgroud)
不断返回“ some text > test”。
我究竟做错了什么?
编辑:
这有效
ProcessBuilder pb = new ProcessBuilder(new String[] {"bash", "-c", "echo sometext > test"});
Run Code Online (Sandbox Code Playgroud) 我试图使用以下代码重定向在ProcessBuilder的帮助下启动的进程的输出
ProcessBuilder pb = new ProcessBuilder("/myScript >> /myLogFile 2>&1 <& - &");
Map<String, String> env = pb.environment();
env.clear();
env.put("var1", "val1");
env.put("var2", "val2");
pb.redirectErrorStream(true);
Process p = pb.start();
Run Code Online (Sandbox Code Playgroud)
但它失败了,例外
线程"main"中的异常java.io.IOException:无法运行程序"/ myScript >>/myLogFile 2>&1 <& - &":java.io.IOException:error = 2,java.lang上没有这样的文件或目录.ProcessBuilder.start(ProcessBuilder.java:460)
当我传递"/ myScript"时,它工作正常
脚本是perl,有关它为什么失败的任何建议/评论?
我尝试将所有这些作为单独的参数传递,例如new ProcessBuilder("/myScript",">>","/myLogFile"),它执行但它不会重定向到日志文件,也不会使用envVars.
我有一个Java程序,直到现在用于从命令行获取输入,然后相应地继续.
现在,我希望有一个基本的GUI.它将需要几个按钮来触发事件.我在HTML和JavaScript方面经验丰富.是否可以用HTML(或类似语法)编写生成GUI?
我不想进入Swing和awt解决方案,因为我宁愿专注于主程序而不是GUI.