怎么把java程序放进php_如何在php脚本中执行Java程序?
I have been struggling with this for a
while trying all sorts of options with
no results – the file is never created
(the file is created with an absolute
path so it’s not being created and I
just can’t find the file). Does anyone
have any ideas?
我認為問題是什么. Apache運行為“nobody”組(apache user ??),它將執行java腳本,該腳本將嘗試在某處創建光盤上的文件.我認為它沒有寫入該位置的權限.你應該chown該文件夾,以便apache用戶可以寫入該文件夾.
==
首先,我想向您指出,從腳本調用exec()可能會真正炸毀您的服務器.我會建議你使用像redis這樣的東西(見下文).
==
其次我想我知道問題是什么.您應該首先嘗試運行下面對我來說很好的簡單示例.
==
首先要確保權限設置正確.因為apache作為無人運行(大多數時候).
我在ubuntu上嘗試了這個簡單的測試,從repo安裝了php.
test.java
class test {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
test.php的
echo exec('java test');
跑test.php
$php test.php
Hello World!
==
或者您可以嘗試以下解決方案之一(這甚至是更好的解決方案):
>將您的java程序編寫為web服務,例如在atmosphere-spade-server(簡單/嵌入式jar)之上.這可能是瘋狂寫的.但在高負荷下,這不是我猜的最佳選擇.我認為這對你來說還不夠快.即使這樣,執行它也會快得多,因為你不會有運行JVM的開銷.可能炸毀你的服務器,而不是像exec()那樣快
>從redis(* nix)列表結構中執行blocking pop/push.這將非常容易在* nux上編寫,因為有兩個java / php的客戶端庫.速度最好我猜,因為redis是用C語言編寫的.我自己使用redis.
>使用JMS,例如activemq,也很容易編寫,因為良好的庫支持.我自己沒有使用過JMS.我使用redis解決方案.我猜的速度會比redis解決方案少一點.
總結
以上是生活随笔為你收集整理的怎么把java程序放进php_如何在php脚本中执行Java程序?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: curl实例(利用curl实现ddos)
- 下一篇: 统计多维数组php_PHP多维数组中统计