2012-05-09 48 views
2

對PHP的.java或的* .jar我已經可以執行*對PHP的.java或*的.jar我的XAMPP,這個代碼執行*在網站

exec('java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser stanford-parser-2012-03-09-models\edu\stanford\nlp\models\lexparser\englishPCFG.ser.gz text.txt > result.txt'); 

它在我的電腦本地主機。

現在我想把我的代碼託管到網站上。恐怕java不想執行並運行exec線。我應該怎麼做才能使exec * .java或* .jar在網站上運行?

我聽說我必須安裝tomcat或javabridge。但我不明白。你可以幫我嗎?非常感謝。

+1

你確定託管服務允許'exec'功能?它可以作爲一種安全措施被關閉。 –

+0

我不知道T_T ..所以我問你一個人s,我應該怎麼做:( – xuweisen

回答

1

您不需要tomcat來運行上面的命令,只要在您運行的服務器上安裝了java,就可以像在自己的機器上一樣運行它。當然,你需要確保你的路徑設置正確,即使這樣,這也不是一個好主意,特別是如果你期望它受到大量流量的影響,或者需要大量時間來完成(> 5秒)。

這種「正確」方法最簡單的方法是啓動一個長時間運行的進程(在Apache/php請求之外),並在完成時設置某種類型的標誌或指示器。如果你希望當它完成時立即通知它們,一個簡單的方法是運行上面的命令作爲後臺進程(在命令結尾附加&,如下所示)。當然,這不包括要做很多的錯誤處理可能需要。

exec('java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser stanford-parser-2012-03-09-models\edu\stanford\nlp\models\lexparser\englishPCFG.ser.gz text.txt &> result.txt'); 
+0

「只要你在運行的服務器上安裝了java」這意味着安裝java誰是賣主機? 我知道這將是很長的時間來執行它,有沒有任何建議,使它更好嗎?謝謝 – xuweisen

+2

如果你在一個共享的PHP服務器上託管,他們很可能不會安裝Java(或者如上面Adam提到的那樣會禁用exec)。把一個鏈接到託管公司,我可能會檢查。 –

+0

是的,我問託管公司,他們可以能夠執行java的..謝謝你abdullah jibaly :) – xuweisen