2012-01-14 8 views
0

Tomcatをインストールしていない状態でjavaとphpをブリッジできると思っています。私はちょうどjdk17をインストールし、私はCへのPATH設定:\ 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#がうまくいくはずだと考えているにもかかわらず、この2つを使用する企業もあります。彼らは、LinuxのホスティングとストレージがUNHACKABLEだと思いますか?

編集:ところで、私はWebサーバーとして従来のApacheではなく、あなたの懸念のために私のWebサーバーとして使用しています。

編集:私は今、Javaの世界(Tomcat、Apache、xxxsuits、ant、soap、xxxprotocol ....)に関する完全な混乱にあると思います。誰かがこれらのすべてを要約するために短い投稿を投稿できますか? [ミッキーコース講座のようにわかりやすいもの]をどうぞ。

+0

何をしようとしていますか?私はこれがあなたが探しているものだと仮定しています:http://php.net/manual/en/book.java.php – galchen

+0

なぜ、企業は「unhackability」に基づいてどの言語を使用するかを決めていますか?明らかに、セキュリティとはまったく関係ないLinuxサーバとオープンソース製品を使用することには、いくつかの利点があります。そして、もしあなたが12人のJavaとPHPプログラマを持っていれば、最新のプロジェクトを開始する前にC#を学ばせるように教えてくれません。実際には、細かい技術的な詳細よりもはるかに重要なことがたくさんあります。 – Voo

答えて

2

はここにあなたの問題です。 Java Bridgeの統合を実行しようとしていると思います。つまり、PHPページを実行する前に、Java Bridge配布をダウンロードしてJava Bridgeサーバーを実行する必要があります。

Javaはコンパイルされているため、PHPとは異なります。 PHPはコンパイルされていないことを意味します。 PHPインタプリタは、実行時にソースコードを読み込み、ソースコードを解釈して、コンピュータが実際に理解する指示を実行させます。つまり、本番サーバーにソースコードを展開します。また、単にソースコードを変更してファイルを再実行するだけで、その動作が変更されることを意味します。

Javaとは異なります。開発者がコードを書くとき、コンパイル時にソースコードが解析されます。コンパイルすると、展開前のソースコードが命令に変換されます。これは、ソースコードがデプロイされていないことを意味します。したがって、Javaはソースコードを命令に変換するために実行時に余分な時間を費やすことはありません。これは展開前に行われます。また、Javaはバイトコード(java命令)をJIT(Just in Time Compilation)と呼ばれるものを使用してネイティブ命令に変換します。 JITはすごく速いです。 Javaは実行時にPHPよりはるかに高速です。しかし、動作を変更したい場合は、ソースを変更して再コンパイルする必要があります。 Antは、Javaコードのコンパイル、パッケージ化、および展開に役立つツールです。 Mavenもありますが、より高い学習曲線があります。これの多くは、C#についても同じ話です。コンパイルされた言語でもあります。

Javaのサポート構造が大量です。他のスタックでは利用できないツールやライブラリがたくさんあります。 Lucene、Spring、Hadoop、Tomcat、PDF生成などのようなものJavaがテーブルにもたらすものは、PHPだけでは必ずしも可能ではない多くのコードへのアクセスです。たとえば、バーコードとそのバーコードのPDFファイルを生成するPHP Webサイトがあります。私はJavaを使用してこれを生成し、PHPにTomcat経由で遠隔呼び出しをさせなければなりません。このためにライブラリが存在するので、バーコード、PDFの生成はJavaで簡単です。 Javaを使って作業するのは、Cを使うより簡単です(より安全です)。 PHPは何かを実行するため、高速な統合が可能です。

Javaとの迅速な統合を行う場合は、コマンドラインからjava実行可能ファイルを実行できます。 PHPは任意のプログラムをexec()することができ、JavaはOSの視点と違いはありません。それは単なる実行可能ファイルです。アップサイドは、Tomcat、サーブレットなどのような余分なツールを必要としないことです。Java VMは、起動にかなりの量のメモリと時間を要する可能性があります。たくさんのJava VMをexec()していると、サーバ上のメモリを簡単に使い切ることができます。これはTomcatのようなものが役立ちます。これは、ソケット、HTTPなどのいずれかとやり取りできる単一のJava VM内で長時間実行されるプログラムを実行するためです。この単一のプログラムは、一度に多くの要求を処理できます。統合のオプションはたくさんあります。

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

+0

クール、ありがとう。 – Mackintoast

1

私はZend Java Bridgeを使用することをお勧めします。これはZend Server CE(フリーウェア)の一部です。

すべてはあらかじめ設定されており、動作しています。

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

私はあなたは、単にJavaのをインストールすることにより、箱から出して買ってあげるPHPの「Java」と呼ばれるオブジェクトの任意の並べ替えを知らないんだ:

http://files.zend.com/help/Zend-Server/working_with_the_java_bridge.htm

関連する問題