PHP-Java連携
以前から、PHP5とJavaの連携について色々と調べていたのだが、なかなか情報が見つからず苦労していた。PHP4であれば、以下の様にして連携できる事は確認済み。
LXVI. PHP / Java の連携
extentionディレクトリにある、php_java.dllとphp_java.jarがあれば連携は可能。
しかし、PHP5となると拡張ディレクトリが「extention」から「ext」に変更になっていたり、その配下にphp_java.dllやphp_java.jarがなかったりで、そもそも試す事すらできなかった。
色々とググってみて分かった事だが、「PHP Java 連携」で検索するのではなく「PHP Java bridge」で検索したほうが、欲しい情報にヒットするようだ。で、以下のページにたどり着く事ができた。
公式サイト:Integrate PHP & Java - PHP / Java Bridgeには繋がらなかったものの、モジュールをダウンロードできるページには繋ぐ事ができたので、そこからphp-java-bridge_3.1.8_j2ee.zipをダウンロード。以下の手順で連携を行った。
※ちなみにPHPはバージョン5.1.6でWindows版。
1. php-java-bridge_3.1.8_j2ee.zipを解凍
2. ディレクトリの中にある、test.batを実行。
3. 実行後作成される、testphp.batを実行。
4. extディレクトリの中にある、JavaBrige.jarとphp_java.dllをPHPをインストールしたディレクトリの中のextディレクトリにコピー。
5. php.iniファイルをエディタで開き、以下の部分をクリップボードにコピー。
extension=php_java.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;; java.java_home=C:\Program Files\Java\jre1.5.0_06 java.java=C:\Program Files\Java\jre1.5.0_06\bin\javaw.exe java.log_level=2
6. コピーした情報を実際のPHP環境のphp.iniへ貼り付けて編集。
7. Apacheの再起動。
上記手順を行った事で、phpinfo()の内容にJavaの項目が追加され、以下のようなJavaコードを実行する事ができるようになりました。
<?php // Java クラス java.lang.System のインスタンスをPHPに作成する $system = new Java('java.lang.System'); // プロパティへのアクセスのデモ echo 'Java version=' . $system->getProperty('java.version') . '<br />'; echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />'; echo 'OS=' . $system->getProperty('os.name') . ' ' . $system->getProperty('os.version') . ' on ' . $system->getProperty('os.arch') . ' <br />'; // java.util.Dateの例 $formatter = new Java('java.text.SimpleDateFormat', "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz"); echo $formatter->format(new Java('java.util.Date')); ?>