2012-01-14 39 views
0

我想如果我可以在沒有安裝Tomcat的情況下橋接java和php。我剛剛安裝jdk17,我設置的路徑C:\ jdk17 \ bin和我的第一個程序是這樣的在Windows中使用java + php

<html> 
<body> 
<?php 
    $system = new Java("java.lang.System"); 
    print "Java version=".$system->getProperty("java.version")." <br>\n"; 
    print "Java vendor=".$system->getProperty("java.vendor")." <p>\n\n"; 
    print "OS=".$system->getProperty("os.name")." ". 
       $system->getProperty("os.version")." on ". 
       $system->getProperty("os.arch")." <br>\n"; 

    $formatter = new Java("java.text.SimpleDateFormat","EEEE, 
    MMMM dd, yyyy 'at' h:mm:ss a zzzz"); 
    print $formatter->format(new Java("java.util.Date"))."\n"; 

?> 
</body> 
</html> 

和事實是這是行不通的。瀏覽器上沒有顯示任何內容。我想我需要在php.ini中添加其他內容,但不知道文件中的內容和位置。
對不起,我對所有這些都很蠢,謝謝你的幫助。

編輯:java可以用php做什麼?有些公司使用這兩個,儘管我反對它認爲ASP和C#應該做的更好。他們認爲LINUX託管和存儲是不可靠的嗎?

編輯:順便說一下,我使用IIS作爲我的web服務器而不是傳統的Apache,謝謝你的關注。

編輯:我想我現在對Java世界(Tomcat,apache,xxxsuits,ant,soap,xxxprotocol ....)完全混淆了。有人可以發佈一篇短文來總結所有這些嗎? [很容易理解,像一個可怕的課程講座]請。

+0

你想做什麼?我認爲這是你要找的東西:http://php.net/manual/en/book.java.php – galchen 2012-01-14 03:51:28

+0

你爲什麼認爲公司正在根據「不可靠性」決定使用哪種語言?顯然,使用與安全無關的Linux服務器和開源產品有幾個好處。顯然,如果你有一打java和php程序員,在開始最新項目之前,你不會告訴他們學習C#。在實踐中,有許多事情比一些小技術細節更重要。 – Voo 2012-01-14 04:42:57

回答

2

這裏是你的問題:

new Java("java.text.SimpleDateFormat","EEEE, 

,我不知道任何類型的對象稱爲「Java」的關於PHP,你會通過簡單的安裝Java獲得開箱即用的。我想你正在嘗試執行Java Bridge集成,這意味着在執行PHP頁面之前,您需要下載Java Bridge分發版並執行Java Bridge服務器。

Java與PHP不同,因爲它被編譯。解釋PHP意味着你不編譯它。 PHP解釋器在運行時讀取源代碼並解釋源代碼,使其執行計算機真正理解的指令。這意味着您將源代碼部署到生產服務器。這也意味着您可以簡單地更改源代碼並重新運行該文件,並會改變其行爲。

Java是不同的。當開發人員編寫代碼時,將在編譯時分析源代碼。編譯會在部署之前將源代碼轉換爲指令。這意味着源代碼沒有部署。因此,Java不會在運行時花費額外的時間將源代碼轉換爲指令。這是在部署之前完成的。 Java還將字節碼(Java指令)轉換爲使用稱爲JIT(即時編譯)的本地指令。 JIT瘋狂得很快。 Java在執行時比PHP快得多。但是,如果您想更改行爲,則必須更改源並重新編譯它。 Ant是一個幫助編譯,打包和部署Java代碼的工具。也有Maven,但它有更高的學習曲線。其中大部分內容也是C#的故事。它也是一種編譯語言。

Java支持結構非常龐大。 Java有很多工具和庫,但其他堆棧無法使用。像Lucene,Spring,Hadoop,Tomcat,PDF生成等等。Java給表格帶來的是訪問很多代碼,而這些代碼並不總是隻能用於PHP。例如,我有一個PHP網站,可以生成這些條形碼的條形碼和PDF文件。我必須使用Java來生成這個,並讓PHP通過Tomcat遠程調用它。在Java中生成條形碼(PDF)更容易,因爲此類庫存在。使用Java比使用C更簡單(並且更安全)。 PHP在快速集成方面很出色,因爲它可以運行任何東西。

如果您想快速與Java集成,可以從命令行執行java可執行文件。 PHP可以執行()任何程序,並且Java與OS的視圖沒有區別。這只是一個可執行文件。好處是你不需要額外的工具,比如Tomcat,Servlets等等。缺點是Java VM可能會佔用大量的內存和啓動時間。如果你是exec()大量的Java虛擬機,你很容易在服務器上佔用內存。這就是Tomcat可以提供幫助的地方,因爲它可以在單個Java VM中運行一個長時間運行的程序,您可以通過套接字,HTTP等進行交互。該單個程序可以同時處理大量請求。集成有很多選項。

http://php.net/manual/en/function.exec.php

+0

很酷,非常感謝。 – Mackintoast 2012-01-14 05:01:57