Java 带有JSP的Runtime.getRuntime().exec(cmd)

Java 带有JSP的Runtime.getRuntime().exec(cmd),java,jsp,runtime.exec,Java,Jsp,Runtime.exec,我有一个类,它有一个方法,当我从命令行运行它时,它就可以工作。不过,当我在JSP文件中调用它时,似乎什么都没有发生。我会错过什么吗?我需要进行一些配置更改才能使代码正常工作 public static void toText(String pdfFile, String textFile) { try { String[] cmd = {"pdftotext", pdfFile, "/tmp/text1984.txt"}; Process p = Runt

我有一个类,它有一个方法,当我从命令行运行它时,它就可以工作。不过,当我在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());
    }
}
问候,,
Phiri这可能有两个原因:

  • 您的webbrowser与webserver不在同一台机器上运行,而您希望来自webserver的Java也在webbrowser中运行(这最终是不真实的)

  • 运行JSP的servletcontainer无法执行该命令,这可能有很多原因,例如权限不足或命令出错


  • 原因#1可以通过在webbrowser中运行Java代码来解决。这可以在签名(!)小程序的帮助下完成。至于原因#2,要确定其根本原因,请阅读以了解如何理解和调试“Runtime.exec()不做任何事情”问题。阅读所有4页。

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


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

    我正在本地apache tomcat6服务器上运行它。。。。无论如何,我找到了一份工作;我基本上使用的是PDF2文本库。#1:web浏览器与web服务器在同一台机器上运行#2:我将通读这篇文章,否则,我会找到一个更好的替代方法来使用Runtime.getRuntime().exec(cmd)谢谢。