首页 > 开发 > PHP > 正文

php 调用 java类 常见配置错误

2024-05-04 22:59:00
字体:
来源:转载
供稿:网友


不搞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!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表