带JSP的Runtime.getRuntime()。exec(cmd)

时间:2011-03-17 13:45:14

标签: java jsp runtime.exec

我有一个类,当我从命令行运行它时,它只能找到一个方法。当我在JSP文件中调用它时似乎没有任何事情发生。我可以在这里遗漏一些东西吗?是否需要进行一些配置更改才能使此代码正常工作。

public static void toText(String pdfFile, String textFile) {
    try {
        String[] cmd = {"pdftotext", pdfFile, "/tmp/text1984.txt"};
        Process p = Runtime.getRuntime().exec(cmd);
        p.waitFor();
    } catch (Exception e) {
        System.out.print(e.getMessage());
    }
}

此致 菲利

2 个答案:

答案 0 :(得分:0)

这可能有两个原因:

  1. 您的webbrowser与web服务器不在同一台机器上运行,而您期望Web服务器中的Java也在webbrowser中运行(这最终是不真实的)。

  2. 运行JSP的servlet容器根本无法执行命令,该命令可能有很多原因,例如权限不足或命令错误。

  3. 原因#1是通过在webbrowser中运行Java代码来解决的。这可以通过签名(!)小程序来完成。至于导致#2,确定其根本原因,请阅读this article以了解如何理解和调试“Runtime.exec()什么也不做”问题。阅读全部4页。

答案 1 :(得分:0)

我认为很可能是JSP文件服务器的安全设置问题,可能是服务器(不允许执行exec调用)。因此,您必须调整服务器的安全设置以允许呼叫。

请注意,这可能存在安全风险。