在java中的apache exec执行命令时遇到问题

Posted

技术标签:

【中文标题】在java中的apache exec执行命令时遇到问题【英文标题】:trouble with execute an command at apache exec in java 【发布时间】:2015-07-03 18:15:27 【问题描述】:

我想通过使用 apache commons exec 库来运行文件 (a.txt)。但它给了我这个错误:有什么问题?

线程“main”java.io.IOException 中的异常:无法运行程序“a.txt”(在目录“C:\Users\sinaa\Desktop”中):CreateProcess 错误=2,系统找不到指定的文件

我的代码是:

    public static void main(String[] args) throws IOException


    Executor exec = new DefaultExecutor();
    File temp=new File("C:\\Users\\sinaa\\Desktop");
    exec.setWorkingDirectory(temp);
    CommandLine s=new CommandLine("a.txt");
    exec.execute(s);

【问题讨论】:

您确定该文件存在于您的桌面上吗? “跑”是什么意思? 是的,我确定。我的意思是我想在编译代码时在记事本窗口中打开 a.txt。 你的意思是 a.txt 不是脚本吗?您只想在记事本中打开 a.txt? 是的。与在指定目录中的命令提示符相同,我键入 a.txt 并按 Enter。 【参考方案1】:

来自您的评论:

我想在编译代码时在记事本窗口中打开 a.txt

要使用默认关联应用程序在 Java 中打开文件,请使用 Desktop 类:

try
    Desktop.open("a.txt");
catch(IOException io)
    io.printStackTrace();

【讨论】:

但我想用 apache commons exec 来做这个。 为什么有这个要求?

以上是关于在java中的apache exec执行命令时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Runtime.getRuntime().exec(startupOracle);没有完全执行命令

PHP在Linux下Apache环境中执行exec,system,passthru等服务器命令函数

Java如何执行操作系统的CMD命令行

Java使用Apache Commons Exec运行本地命令行命令

【exec】shell脚本中的 exec 命令

漏洞复现——Apache SSI远程命令执行