2011-03-17 5 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()); 
    } 
} 

감사합니다, Phiri

답변

0

이 2 가지 원인이있을 수 있습니다

  1. 당신은 또한 웹 서버에서 자바 것을 기대하는 동안 웹 서버와 동일한 시스템에서 실행되지 않습니다 웹 브라우저 웹 브라우저에서 실행됩니다 (궁극적으로 사실이 아닙니다).

  2. JSP가 실행되는 servletcontainer는 명령을 실행하지 못했습니다.이 명령은 불충분 한 권한 또는 error'ed 명령과 같은 많은 원인을 가질 수 있습니다.

원인 1은 웹 브라우저에서 Java 코드를 실행하여 해결됩니다. 이것은 서명 된 (!) 애플릿을 사용하여 수행 할 수 있습니다. # 2의 원인을 밝히기 위해 this article을 읽고 "Runtime.exec()는 아무 것도하지 않는"문제를 이해하고 디버그하는 법을 배우십시오. 4 페이지 모두 읽으십시오.

+0

# 1 : 웹 브라우저가 웹 서버와 동일한 컴퓨터에서 실행 중임 # 2 : 기사를 살펴 보겠습니다. 그렇지 않으면 Runtime.getRuntime()을 사용하는 것이 더 나은 대안을 찾았습니다. exec (cmd) 감사합니다. . – lightonphiri

0

아마도 대부분의 경우 서버의 보안 설정 문제인 JSP 파일, 서버 (exec 호출을 허용하지 않음)라고 생각합니다. 따라서 전화를 허용하려면 서버의 보안 설정을 조정해야합니다.

보안 위험이 될 수 있습니다.

+0

로컬 아파치 tomcat6 서버에서 실행 중입니다 ... 어쨌든 주위에서 작업을 발견했습니다. 기본적으로 PDF2Text 라이브러리를 대신 사용했습니다. – lightonphiri

관련 문제