jjfjjj 发表于 2017-4-10 10:01:59

质疑:网络中关于php拓展java配置的解答。并请教

  关于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中加入了如下代码:
 
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 

$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"; 

?> 

但是运行后出错:
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代码如下:
 
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"

我改后代码如下:
 
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,我两次都尝试了,但是还是不行,还是那个错误。
   2extension=php_java.dll 3java.home = C:\j2sdk1.4 4java.library = c:\j2sdk1.4\jre\bin\server\jvm.dll 5java.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


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 
页: [1]
查看完整版本: 质疑:网络中关于php拓展java配置的解答。并请教