|
关于php中拓展java的问题的解答,我在网上找了些文章,但是大概都如村里的这个帖子相似http://www.phpx.com/happy/thr78795.html
说明:我的php+apache2+mysql和jdk安装目录如下:
c:\HttpServ\php4
c:\HttpServ\php5
c:\HttpServ\apache2
c:\HttpServ\mysql
c:\j2sdk1.4
在php.ini中加入了如下代码:
[java]
extension=php_java.dll
java.library.path=c:\HttpServ\php4\extensions\
java.class.path="c:\HttpServ\php4\extensions\j2sdk1.4\php_java.jar;c:\myclasses"
运行的调试代码如下:
[php]
<?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"))."\n";
?>
[/php]
但是运行后出错:
Fatal error: Cannot instantiate non-existent class: java in D:\WWWROOT\java.php on line 3
(注:我的document_root=D:\WWWROOT)
我对上面的代码又作了一下修改
将 java.class.path="c:\HttpServ\php4\extensions\j2sdk1.4\php_java.jar;c:\myclasses"
改为:java.class.path="c:\HttpServ\php4\extensions\php_java.jar;c:\myclasses"
也就是这个语句我不懂,不知道是干什么的,我再想,我的c:\HttpServ\php4\extensions\下面没有j2sdk1.4这个目录,而直接有php_java.jar,所以也就改了(见笑了);
但是改了之后还是不行,还是那个错误。
我在网上又找了个类似的配置如下:
文章地址:http://www.channel7.cn/2004/12-30/174713.html
其中原来php.ini代码如下:
[java]
extension=php_java.dll
java.home = C:\jdk1.2.2
java.library = c:\jdk1.2.2\jre\bin\CLASSIC\jvm.dll
java.library.path=c:\web\php4\extensions\
java.class.path="c:\web\php4\extensions\jdk1.2.2\php_java.jar;c:\myclasses"
我改后代码如下:
[java]
extension=php_java.dll
java.home = C:\j2sdk1.4
java.library = c:\j2sdk1.4\jre\bin\server\jvm.dll
java.library.path=c:\HttpServ\php4\extensions\
java.class.path="c:\HttpServ\php4\extensions\php_java.jar;c:\MyClasses"
其中
java.library = c:\jdk1.2.2\jre\bin\CLASSIC\jvm.dll
我发觉我的c:\j2sdk1.4\jre\bin\目录下更本没有CLASSIC文件夹(也许是版本的问题吧),只有server和client,这两个文件夹类各有各jvm.dll,我两次都尝试了,但是还是不行,还是那个错误。
[java] | 2 | extension=php_java.dll | 3 | java.home = C:\j2sdk1.4 | 4 | java.library = c:\j2sdk1.4\jre\bin\server\jvm.dll | 5 | java.library.path="c:\HttpServ\php4\extensions\;c:\j2sdk1.4\jre\lib" | 6 | java.class.path="c:\HttpServ\php4\extensions\php_java.jar;c:\myclasses;c:\j2sdk1.4\lib\dt.jar;c:\j2sdk1.4\lib\tools.jar;c:\j2sdk1.4\bin;"
Fatal error: Cannot instantiate non-existent class: java in D:\WWWROOT\java.php on line 3
先别忙加自己的类库, 纯粹用标准库试完再说, 你的 C: 下面有 myclasses 这个目录吗?
java.library.path= c:\HttpServ\php4\extensions\ 最后不要加斜杠, 应该是 java.library.path= c:\HttpServ\php4\extensions
[java]
extension=php_java.dll
java.home = C:\j2sdk1.4\jre
java.library = c:\j2sdk1.4\jre\bin\server\jvm.dll
java.library.path= c:\HttpServ\php4\extensions
java.class.path= c:\HttpServ\php4\extensions\php_java.jar
|
|
|
|