PHP-Java拡張関数を使う

試した環境です。
ApachePHPJava VM
2.0.434.3.01.4.0
ウソハックを含む設定手順

  1. まず、PHPのビルド時に--with-javaオプションをつけていることを前提とします。 インストールディレクトリは/usr/localとします。
  2. /usr/local/lib/php/ ディレクトリを見て、 php_java.jarが配置されていることを確認します。
  3. /usr/local/lib/php/extensions/no-debug-non-zts-YYYYMMDD ディレクトリの中にある、java.so をその上、つまり /usr/local/lib/php/extensions に移動させます。
  4. ここが リファレンスへの追記を見ながら行うウソハックです。 java.soというファイル名ではJava VMが共有ライブラリと認識できないらしいので、 これにlibphp_java.so という名前でシンボリックリンクを張ります。
  5. /usr/local/lib/php.ini をテキストエディタで編集し、 [java] セクションを次のように設定します。

    java.class.path = /usr/local/lib/php/php_java.jar
    java.home = /usr/local/java
    java.library = /usr/local/java/jre/lib/i386/server/libjvm.so
    java.library.path = /usr/local/lib/php/extensions
    extension_dir = /usr/local/lib/php/extensions/
    extension = libphp_java.so
    

サンプルスクリプト
 以下はPHPのマニュアルに載っているサンプルです。 使っているPHP処理系がJava拡張関数をサポートしているかどうかを確認するのに使えます。

<html>
<body>
<?php
  // Java クラス java.lang.System のインスタンスをPHPに作成する
  $system = new Java('java.lang.System');

  // プロパティへのアクセスのデモ
  print 'Java version='.$system->getProperty('java.version').' <br>';
  print 'Java vendor=' .$system->getProperty('java.vendor').'  <br>';
  print '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");

  print $formatter->format(new Java('java.util.Date'));
?>
</body>
</html>

Open Source Web Architecture Top

(first uploaded 2003/02/23 last updated (not ever), URANO398)

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル