不搞php開發的工作很長時間了,最近修改一個原來做的項目要支持調用java類,開始重操php,先解決配置問題再說。不說太多費話。網上的文章不少,但是都有很多錯誤的東西在里面,下面我介紹一下我配置全過程與大家分享,如有問題可以雖時聯系愿意為你解決。
說明:此文章的正常性只對本文中所提供版本的php和jdk有保證,其它版本的未一一試,如有問題及時聯系愿與你一起解決相關問題。
安裝配置php的工作這里就略過
測試環境:windows2003+iis+php version 4.3.6+jdk 1.4.1_01
下面我先將網上的錯誤的配置列表羅列如下:
錯誤配置1
java.home = d:/j2sdk14101/
錯誤結果如下:
can't open d:/j2sdk14101//lib/tzmappings.
解決辦法:
java.home = d:/j2sdk14101/jre
錯誤配置2
java.class.path ="c:/php/extensions/php_java.jar;x:/java class文件存目錄/
錯誤結果如下:
fatal error: call to a member function on a non-object in e:/inberkong/public_html/phproot/testjava.php on line
錯誤原因:用戶java class文件沒有存放在 x:/java class文件存目錄/ 中或者x:/java class文件存目錄/不存在
解決辦法:1 確定java.class.path ="c:/php/extensions/php_java.jar;x:/java class文件存目錄/ 正確
2 確定此目錄下有在php調用的class文件并確定是正確的
正確的配置如下:
第一步:確定環境正確
默認以上環境配置正確
php目錄:c:/php
jdk目錄:d:/j2sdk14101
第二步
找到c:/windows下的php.ini
1 找到extension_dir并配置 確保其目錄上有php_java.jar php_java.dll
extension_dir = "d:/php/extensions"
2 找到;extension=php_java.dll將此配置信息前的分號去掉
extension=php_java.dll
3 文件找到[java]之后的東西配置相關內容
[java]
java.class.path ="c:/php/extensions/php_java.jar;c:/php/php_for_class/"
java.home = d:/j2sdk14101/jre
java.library = d:/j2sdk14101/jre/bin/server/jvm.dll
java.library.path = c:/php/extensions/
第三步
寫一個java文件并編譯后放在c:/php/php_for_class/
test.java文件如下:
package test;
public class test
{
public string getmessage(string dd)
{
return "<font color=green>hello php ! i am from java.</font>"+dd;
}
}
寫一個php文件testjava.php 調用test包中的test類
<?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"))."<br><br>/n";
$b=new java("test.test");
$x=$b->getmessage(" <br><font color=red>hello java! i am from php!</font>");
echo $x;
?>
顯示結果:
java version=1.4.1_01
java vendor=sun microsystems inc.
os=windows xp 5.2 on x86
星期四,一月 12, 2006 at 3:00:51 下午 中國標準時間
hello php ! i am from java.
hello java! i am from php!
新聞熱點
疑難解答