不搞php开发的工作很长时间了,最近修改一个原来做的项目要支持调用java类,开始重操php,先解决配置问题再说。不说太多费话。网上的
文章不少,但是都有很多错误的东西在里面,下面我介绍一下我配置全过程与大家分享,如有问题可以虽时联系愿意为你解决。
说明:此文章的正常性只对本文中所提供版本的php和jdk有保证,其它版本的未一一试,如有问题及时联系愿与你一起解决相关问题。
安装配置php的工作这里就略过(有不会的朋友可以与我联系[email protected])
测试环境: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!
新闻热点
疑难解答