2011-03-17 122 views
0

我有一个类,它有一个方法,当我从命令行运行它时就会找到它。当我在JSP文件中调用它时似乎没有发生任何事情。我能在这里错过什么吗?是否需要对此代码进行一些配置更改。带有JSP的Runtime.getRuntime()。exec(cmd)

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()); 
    } 
} 

问候, 菲利

回答

0

这可以有2个原因:

  1. 您网页浏览器在同一台机器上的Web服务器,而你期待的是Java的Web服务器,从还没有运行在webbrowser中运行(这最终是不真实的)。

  2. JSP运行的servletcontainer无法执行该命令,该命令可能有许多原因,例如权限不足或命令刚刚错误。

原因#1是通过在webbrowser中运行Java代码来解决的。这可以在签名(!)applet的帮助下完成。至于导致#2,要确定它的根本原因,请阅读this article以了解如何理解和调试“Runtime.exec()没有任何问题”。阅读所有4页。

+0

#1:网络浏览器与网络服务器在同一台机器上运行 #2:我将通读文章,否则,我发现使用Runtime.getRuntime()。exec(cmd) 谢谢。 – lightonphiri 2011-03-19 18:30:48

0

我想最有可能这是一个服务器的安全设置,JSP文件,可能是服务器(不允许exec调用)的问题。所以您将不得不调整服务器的安全设置以允许呼叫。

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

+0

我在我的本地apache tomcat6服务器上运行它....我反正找到了一个工作;我基本上使用了PDF2Text库。 – lightonphiri 2011-03-19 18:30:14

相关问题