首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 呼叫 Java 類別庫完整指南:Windows/Linux 環境配置與實戰範例

     編輯:PHP 綜合知識

Windows 環境三步驟配置

  1. 安裝 JDK,設定 PATH 包含 %JAVA_HOME%\bin
  2. 修改 php.ini:
    [Java]
    extension=php_java.dll
    java.library.path = "C:\php\extensions"
    java.class.path = "C:\php\extensions\php_java.jar;C:\myclasses"
  3. 驗證測試:
    <?php
    $sys = new Java('java.lang.System');
    echo 'Java version: ' . $sys->getProperty('java.version') . '<br>';
    echo 'OS: ' . $sys->getProperty('os.name') . ' ' . $sys->getProperty('os.version') . '<br>';
    $fmt = new Java('java.text.SimpleDateFormat', 'EEEE, MMMM dd, yyyy');
    echo $fmt->format(new Java('java.util.Date'));
    ?>
    預期輸出 Java 版本、廠商、作業系統、格式化日期。

自訂 Java 類別開發與呼叫

1. 編寫 Java 類別 PhpTest.java

package com.example;
public class PhpTest {
    public String foo = "initial";
    
    public String test(String str) {
        return empty(str) ? "Empty input" : "Received: " + str;
    }
    
    public String getFoo() { return "foo = " + foo; }
}

2. 編譯並部署

javac -d C:\myclasses PhpTest.java
# 生成 C:\myclasses\com\example\PhpTest.class

3. PHP 呼叫

<?php
$obj = new Java('com.example.PhpTest');
echo $obj->test('Hello from PHP') . '<br>'; // Received: Hello from PHP
echo $obj->getFoo() . '<br>';              // foo = initial
$obj->foo = 'modified by PHP';
echo $obj->getFoo();                        // foo = modified by PHP
?>

Linux (RedHat 9) 編譯安裝 PHP + Java 支援

  1. 安裝 JDK 至 /usr/java/j2sdk1.4.1_03,設定 /etc/profile
  2. 編譯 Apache:./configure --enable-module=so --enable-shared=max
  3. 編譯 PHP:./configure --with-apxs=/usr/local/apache/bin/apxs --with-java=/usr/java/j2sdk1.4.1_03
  4. 配置 php.ini:
    [Java]
    java.class.path = /usr/local/php/lib/php/php_java.jar
    java.home = /usr/java/j2sdk1.4.1_03
    java.library = /usr/java/j2sdk1.4.1_03/jre/lib/i386/libjava.so
    java.library.path = /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429
    extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429
    extension=java.so
  5. 關鍵符號連結:ln -s java.so libphp_java.so
  6. 設定 LD_LIBRARY_PATH 包含 JDK jre/lib/i386 及 server 目錄
  7. 重啟 Apache,測試 new Java('java.lang.System')

常見問題排查

  • ClassNotFoundException:檢查 java.class.path 包含類別目錄
  • UnsatisfiedLinkError:LD_LIBRARY_PATH 缺少 libjava.so、libjvm.so 路徑
  • 記憶體不足:調整 -Xmx 參數於 java.options
  • 編碼亂碼:確保 PHP、Java、資料庫、瀏覽器編碼一致(建議 UTF-8)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved