PHP4调用JavaBean的摸索
文章作者:佚名 发布时间:2004-6-16 12:18:47
首先声明,写此文时,我对这个也不懂,只是自己从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:jspjdk122下,那么就设置为e:jspjdk122
三、下载相关文件(如果您没有的话)
下载地址: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:PHP4php_java.jar
java.home=E:jspjdk122bin
extension=php_java.dll
java.library.path=E:PHP4ext
java.library=E:Program FilesJavaSoftJRE1.2binclassicjvm.dll
以上是我的配置,说明一下,我的php4在e:php4目录下,我的所有扩充的dll文件 放在e:php4ext目录下,当然php_java.dll也就应该copy到这个目录了.最后确认你的 win2000下有jvm.dll文件,如果没有,安装一下visual studio就可以了(我用装了个VC++6,所以不用考虑了)
五、测试
运行phpinfo()就可以看到有"java"了,如果没有,说明你没有成功.它的显示如下:
java
Directive Local Value Master Value
java.class.path
E:PHP4php_java.jar E:PHP4php_java.jar
java.home
E:jspjdk122bin E:jspjdk122bin
java.library
E:Program FilesJavaSoftJRE1.2binclassicjvm.dll jvm.dll
java.library.path
E:PHP4ext 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
七、再次说明
我目前还遇到两个具体的而且又是必须解决的问题:
(一)怎么调用自己写的javabean
(二)IIS+win2000+php4p12还没有成功
请了解以上问题的前辈指点在下,将感激不尽!
PHP4调用JavaBean的摸索(续)
文章作者:佚名 发布时间:2004-6-16 12:11:21
写了“PHP4调用JavaBean的摸索”一文,后来想试试用自己写的JavaBean,怎么也不行,请教了不少人,终于弄明白了,在这里我要感谢廖阳,其实我也对他不熟悉,但是,他确实给了我不少帮助。
声明一下,我下面的例子都是在Win2000/IIS5/CGI/PHP4dev2/Jdk13下实现的。
下面我对以前的一文进行补充,另外做了几个简单的例子。
补充:下一个好的PHP4版本,我一直很喜欢http://www.mm4.de/下的PHP4版本。下载后,它自己带了一个php.ini,已经支持java了,你在java.class.path中再加上你自己的java class的目录,比如:f:php4class,你以后自己做的java class就以它为“根”(带java的package,就在这里建立子目录)
好了,下面些一个简单的例子显示伟大的“Hello World!”
编写一个简单的java文件(这里我用的是廖阳的例子,为了表示感谢,我没有做任何改动)
test1.java文件如下:
package tests;
public class test1
{
public String getMessage()
{
return "Hello World";
}
}
用javac test1.java生成test1.class文件,将test1.class copy到f:php4class下的tests子目录下(这里是java package的需要)
编写php文件,getmsg.php4文件如下:
<?
$b=new Java("tests.test1");
$x=$b->getMessage();
echo $x;
?>
在浏览器中访问getmsg.php4将显示“ Hello World!”
再举个例子:
test.java文件内容如下:
import java.lang.*;
public class test{
public int ret_test(int i)
{
if (i>0) return 31;
if(i==0) return 30;
if (i<0) return 29;
return 100;
}
}
编译后放在f:php4class目录下,名称当然为:test.class
编写一个PHP4文件testint.php4如下:
<?
$b=new Java("test","");
$x=$b->ret_test(4);
echo $x;
?>
访问将显示31。
后来,我自己做了一个调用SQL数据库的javabean,在PHP4中一切正常,大家可以自己去试,确实不错,从某种程度上,可以说,实现了“隐藏源代码”。
欢迎有兴趣的朋友交流。