php能用Java的Beans???那不就太无敌了~~???

解决方案 »

  1.   

    PHP4调用JavaBean的摸索作者:东方一蛇 | 收录日期 : 2000-08-21  首先声明,写此文时,我对这个也不懂,只是自己从php.net上下了例子,试着做了一下,而且是在 win2000+apache+php4p12配置下. 具体步骤如下: 一、安装好JVM(java virtual machine)(我用的是jdk122) 当然,您不一定要用jdk122,甚至不用jdk,用其它的,比如: 
    JVM=Kaffe 1.0.4 (as delivered with OS), OS=Redhat Linux 6.1 
    JVM=Kaffe 1.0.5 (built from source), OS=Redhat Linux 6.1 
    JVM=IBM 1.1.8, OS=Redhat Linux 6.1 
    JVM=Blackdown 1.2.2 RC4, OS=Redhat Linux 6.1 
    JVM=Sun JDK 1.1.8, OS=Windows NT 4/win2000 
    但是,在这里我只讲我的做法,其它的我没有试过,不要问我,这里要特别注意的是, 根据php官方站点的说明,竟然不支持jdk122+linux 
    二、设置环境变量 在win2000中"我的电脑"->"属性"->"高级"->"环境变量" 
    设置JAVA_HOME 
    为:jdk路径,比如我的jdk122装在e:\jsp\jdk122下,那么就设置为e:\jsp\jdk122 三、下载相关文件(如果您没有的话) 下载地址:http://www.php.net/downloads.php 
    我下载了:php-4.0.1-Win32-java-jdk122.zip文件,解压后有几个例子,并且有:php_java.dll和php_java.jar文件. 
    四、配置php.ini文件 [java] 
    java.class.path=E:\PHP4\php_java.jar 
    java.home=E:\jsp\jdk122\bin 
    extension=php_java.dll 
    java.library.path=E:\PHP4\ext\ 
    java.library=E:\Program Files\JavaSoft\JRE\1.2\bin\classic\jvm.dll 
    以上是我的配置,说明一下,我的php4在e:\php4目录下,我的所有扩充的dll文件 放在e:\php4\ext目录下,当然php_java.dll也就应该copy到这个目录了.最后确认你的 win2000下有jvm.dll文件,如果没有,安装一下visual studio就可以了(我用装了个VC++6,所以不用考虑了) 
    五、测试 运行phpinfo()就可以看到有"java"了,如果没有,说明你没有成功.它的显示如下: java 
    Directive Local Value Master Value 
    java.class.path 
    E:\PHP4\php_java.jar E:\PHP4\php_java.jar 
    java.home 
    E:\jsp\jdk122\bin E:\jsp\jdk122\bin 
    java.library 
    E:\Program Files\JavaSoft\JRE\1.2\bin\classic\jvm.dll jvm.dll 
    java.library.path 
    E:\PHP4\ext\ no value 
    六、测试例子 我用的是下载的文件中包含的例子:jver.php,如果成功,将有如下结果: 
    Java version=1.2.2 
    Java vendor=Sun Microsystems Inc. 
    OS=Windows NT 5.0 on x86 
    星期三, 七月 19, 2000 at 10:32:53 下午 GMT+08:00 
      

  2.   

    没有成功。
    好象提示
    Warning: java.lang.ClassNotFoundException: tests.test1 in c:\PHP\class\hi.php on line 2Fatal error: Call to a member function on a non-object in c:\PHP\class\hi.php on line 4当然,我已经将c:\php加在环境PATH的CLASS路径中了。
      

  3.   

    http://www.csdn.net/develop/article/9/9756.shtm
      

  4.   

    24680(24680) 
    你的php.ini配置好了吗?打个小广告:我的家"http://www.wodedjia.net"
    上有两个关于php调用javabean的文章有什么问题,也许我可以帮你
    [email protected]
      

  5.   

    我调用成功BEAN里的函数成功了。
    可是为何在PHP里不能给变量赋新值?
    tests.java
    package tests; 
    public class test1 

    public int a=1;
    public String getMessage() 

    return "Hello "+a; 
    } } 查看的JSP文件
    <?
    $b=new Java("tests.test1"); $b->a=2;
    //就是上面不能赋值。
    //系统提示在此文件的第4行,也就是$b->a=2这句错误:Fatal error: Attempt to access a Java property on a non-Java object $x=$b->getMessage(); echo $x; 
    ?>
    当然如果去掉那一句还是正常的。
      

  6.   

    tests.java
    package tests; 
    public class test1 

        public int a=1;
    } <?
    $b=new Java("tests.test1"); 
    $b->a=2;
    ?>
    如果这样,有问题吗?
      

  7.   

    关注!
    我发现不能赋值给属性,不过可以使用JAVA类中的方法。
    怎么回事?
      

  8.   

    tests.java
    package tests; 
    public class test1 

       public int ret_a(int a) 
       {
          return a; 
        }

    <?
    $b=new Java("tests.test1"); 
    $x=$b->ret_a(2); 
    echo $x; 
    ?>24680,请这样试试看
    成功与否都请回复我的家:[http://www.wodejia.net/]
      

  9.   

    谢谢一蛇兄,我调用其方法和给方法里的参数赋值都是可以的。
    可如果加上public int a=1;或public int a;总不能给a赋值。
      

  10.   

    一蛇兄已经搞定了,没想到是LIB路径问题,是原来的DLL路径错了。
    谢谢,加分。