• 技术文章 >php教程 >php手册

    php 调用 java类 常见配置错误

    2016-06-21 09:06:58原创266

    错误

    不搞PHP开发的工作很长时间了,最近修改一个原来做的项目要支持调用Java类,开始重操PHP,先解决配置问题再说。不说太多费话。网上的

    文章不少,但是都有很多错误的东西在里面,下面我介绍一下我配置全过程与大家分享,如有问题可以虽时联系愿意为你解决。

    说明:此文章的正常性只对本文中所提供版本的PHP和JDK有保证,其它版本的未一一试,如有问题及时联系愿与你一起解决相关问题。

    安装配置PHP的工作这里就略过(有不会的朋友可以与我联系inber_net@hotmail.com)

    测试环境: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 "Hello PHP ! I am from JAVA."+dd;
    }
    }

    写一个PHP文件testjava.php 调用Test包中的Test类

    $system = new Java("java.lang.System");
    print "Java version=".$system->getProperty("java.version")."
    \n";
    print "Java vendor=".$system->getProperty("java.vendor")."

    \n\n";
    print "OS=".$system->getProperty("os.name")." ".
    $system->getProperty("os.version")." on ".
    $system->getProperty("os.arch")."
    \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"))."

    \n";

    $b=new Java("Test.Test");
    $x=$b->getMessage("
    Hello Java! I am from PHP!");
    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!




    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Java PHP nbsp class system
    上一篇:C_substr 下一篇:php5 中, 对象引用的注意问题

    相关文章推荐

    • windows7下php开发环境搭建图文教程,• [PHP]set_time_limit — 设置脚本最大执行时间• jquery分页,谁做过的,拿代码看下呢• mysql常识和基本操作• php 读取MAC地址

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网