2011-03-17 199 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

相關問題