2011-08-04 2 views
0

나는 .php 페이지를 보았으므로 이제 php.i에서 form을 제출 한 후 백엔드에서 java 프로그램을 실행하고 싶습니다. exec(), system() 함수를 사용해 보았고 슬프게도 작동하지 않았습니다. 제발 도와주세요.양식을 제출할 때 PHP 페이지에서 Java 프로그램을 어떻게 실행해야합니까?

if($_POST["ADD"]) 
{ 
     echo "Phrase has been added now"."<br />"; 
     $lastline=exec("java -Dwordnet.database.dir=D:\wordnet\2.1\dict Process",$retval); 
} 

프로세스 내가 실행하려면 내 주요 클래스 : 이 코드 조각입니다.

+0

나중에 그것은 명령 프롬프트에서 작동하지만 PHP 페이지에서 작동하지 않습니다. –

+0

사용자가 사용하는 Apache (또는 사용하는 모든 것) 서버가 사용하는 java에 대한 실행 권한이 있어야합니다. – Mchl

+0

@Sanjay, 사용자가 '$ retval'에 삽입 할 수있는 악의적 인 코드를 조심하십시오. post 매개 변수 값을 삭제하지 않으면 감염됩니다. 이는 공개 된 사이트에서 엄청난 보안 문제가 될 수 있습니다. –

답변

1

먼저 오류 메시지를 게시하면 도움이되었습니다. 리턴 코드을 점검하는 것도 현명한 방법입니다.

두 번째로 java의 전체 경로를 지정하십시오 (예 : java 대신에 /usr/bin/java을 사용하십시오.

+0

오류 메시지가없고 작동하지 않습니다. –

+0

실제로 java 프로그램은 데이터베이스를 업데이트하는 데 사용되지만 업데이트되지는 않습니다. 나는 완전한 길을 주려고했지만 똑같은 일이 일어나고있다. –

0

Java 프로세스를 디버그 모드에서 시작하십시오. 즉, jdwp를 사용하도록 설정하십시오. 그런 다음 일부 디버거 (예 : jdb)로 자바 프로세스에 연결하지만 Eclipse와 같이 완전한 IDE를 사용하는 것이 더 좋다. 당신은 당신이 그것에

exec("java -Xrunjdwp:transport=dt_socket,address=9002,server=y,suspend=y <the rest of command>") 

다소 간단한 솔루션을 디버그 세션을 설정할 수 있습니다 전에 다른 자바 프로세스가 일부에 기록하도록 구성하면 자바 응용 프로그램에서 로깅을 사용하는 것입니다 종료됩니다 y로 플래그를 일시 중지 설정 확인 파일을 실행하면 실행 중에 잘못되어있는 것을 검사 할 수 있습니다.

Btw, 자바 프로그램이 실제로 실행되고 있습니까? :)

+0

java 프로그램이 완벽하게 실행됩니다. –

관련 문제