首先声明,写此文时,我对这个也不懂,只是自己从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
七、再次说明 我目前还遇到两个具体的而且又是必须解决的问题: (一)怎么调用自己写的javabean
(二)IIS+win2000+php4p12还没有成功
请了解以上问题的前辈指点在下,将感激不尽!
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
七、再次说明 我目前还遇到两个具体的而且又是必须解决的问题: (一)怎么调用自己写的javabean
(二)IIS+win2000+php4p12还没有成功
请了解以上问题的前辈指点在下,将感激不尽!
解决方案 »
- PHPJM加密的文件有办法解密吗?
- 在JS中关于遍历“checkbox”,
- 数据库存不了富态文本生成的内容怎么办啊
- Mac OS 10.6.3下Nginx+Mysql+PHP环境搭建以及一些我找到的免费的,比较好用的工作软件推荐。(一)
- oracle,lob类型,多个文件下载?
- osCommerce 如何安装啊
- 把文件上传到空间后无法访问内页
- 想请教N人,关于PHP对64位CPU的支持问题,还性能怎么样!
- 1.php中的模板怎样用,又该怎样学。2.phplib怎样学?3 大家在开发中类的使用多吗?类该怎样用。
- Mysql 的系统问题???
- php下拉菜单问题
- 用session来进行身份验证(php+mysql环境),我的程序有严重漏洞,help me!
下面我对以前的一文进行补充,另外做了几个简单的例子。
补充:下一个好的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:\php4\class下的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;
else if(i==0)
return 30;
else if (i<0)
return 29;
else
return 100;
}
}编译后放在f:\php4\class目录下,名称当然为:test.class
编写一个PHP4文件testint.php4如下:
<?
$b=new Java("test","");
$x=$b->ret_test(4);
echo $x;
?>
访问将显示31。
后来,我自己做了一个调用SQL数据库的javabean,在PHP4中一切正常,大家可以自己去试,确实不错,从某种程度上,可以说,实现了“隐藏源代码”。