2011-04-28 75 views
2

我有一個程序使用外部庫和我用Java編寫的代碼。但是,我想通過網絡訪問它。在Perl/CGI腳本中運行Java程序

如果我完全控制了網絡服務器,那麼我可能會使用Tomcat或JBoss,但我在學校沒有這些特權。

的服務器我也有機會獲得的Apache HTTP服務器已安裝的所有普通的Linux好吃的東西(認爲:的Perl,PHP等)

我怎麼會寫運行此Java程序Perl腳本? 我已經嘗試了諸如「system java MyProgram」和「exec java MyProgram」等基礎知識,但他們似乎沒有工作。

我很感激任何幫助或對此的見解。謝謝!

+0

請參閱http://perl.active-venture.com/jpl/docs/Tutorial-callingjava.html – 2011-04-28 22:32:42

+0

我已經看過了。我繼續得到「無法找到JPL/Class.pm」,這就是我放棄這一策略的原因。它沒有提到必須包含其他庫或類似的東西。 – Joel 2011-04-28 22:38:28

+0

您的服務器是否安裝了Java VM?即,'system(「java -v」)的輸出是什麼(或者你的宿主語言的語法是什麼)? – 2011-04-28 22:47:00

回答

0

當您運行CGI腳本時,環境非常有限,其中包括PATH。您的CGI腳本可能找不到java命令嗎?或者,也許Perl只是在CGI模式下拒絕運行system命令(又名污點模式)。有關更多信息,請參閱perldoc perlsec

基本上,您需要設置PATH,然後嘗試使用java命令運行system命令。

1

嘗試這種情況:

system('/full/path/to/java -cp full_class_path my.class.Name'); 
1

工藝過程;

try 
    { 
     process = Runtime.getRuntime().exec("cmd/c start c:\\Perl\\bin\\file.pl"); 

嘗試按照您的程序運行。