php调用java对象方法(转)
2008-04-18 09:20
656 查看
测试环境:Windows2003+IIS+PHP Version 4.3.6+JDK 1.4.1_01
下面先将网上的错误的配置列表罗列如下
错误配置1
java.home = D:/j2sdk14101/
错误结果如下:
can't open D:/j2sdk14101//lib/tzmappings.
解决办法:
java.home = D:/j2sdk14101/jre
错误配置2
java.class.path ="C:/PHP/extensions/php_java.jar;x:/Java Class文件存目录/
错误结果如下:
Fatal error: Call to a member function on a non-object in E:/inberkong/public_html/phproot/testjava.php on line
错误原因:用户Java class文件没有存放在 x:/Java Class文件存目录/ 中或者x:/Java Class文件存目录/不存在
解决办法:1 确定java.class.path ="C:/PHP/extensions/php_java.jar;x:/Java Class文件存目录/ 正确
2 确定此目录下有在PHP调用的Class文件并确定是正确的
正确的配置如下:
第一步:确定环境正确
默认以上环境配置正确
PHP目录:C:/PHP
JDK目录:D:/j2sdk14101
第二步
找到C:/WINDOWS下的php.ini
1 找到extension_dir并配置 确保其目录上有php_java.jar php_java.dll
extension_dir = "D:/PHP/extensions"
2 找到;extension=php_java.dll将此配置信息前的分号去掉
extension=php_java.dll
3 文件找到[java]之后的东西配置相关内容
[Java]
java.class.path ="C:/PHP/extensions/php_java.jar;C:/PHP/php_for_class/"
java.home = D:/j2sdk14101/jre
java.library = D:/j2sdk14101/jre/bin/server/jvm.dll
java.library.path = C:/PHP/extensions/
第三步
写一个Java文件并编译后放在C:/PHP/php_for_class/
Test.java文件如下:
pac
4000
kage Test;
public class Test
{
public String getMessage(String dd)
{
return "<font color=green>Hello PHP ! I am from JAVA.</font>"+dd;
}
}
写一个PHP文件testjava.php 调用Test包中的Test类
<?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"))."<br><BR>/n";
$b=new Java("Test.Test");
$x=$b->getMessage(" <br><font color=red>Hello Java! I am from PHP!</font>");
echo $x;
?>
显示结果:
Java version=1.4.1_01
Java vendor=Sun Microsystems Inc.
OS=Windows XP 5.2 on x86
星期四,一月 12, 2006 at 3:00:51 下午 中国标准时间
Hello PHP ! I am from JAVA.
Hello Java! I am from PHP!
下面先将网上的错误的配置列表罗列如下
错误配置1
java.home = D:/j2sdk14101/
错误结果如下:
can't open D:/j2sdk14101//lib/tzmappings.
解决办法:
java.home = D:/j2sdk14101/jre
错误配置2
java.class.path ="C:/PHP/extensions/php_java.jar;x:/Java Class文件存目录/
错误结果如下:
Fatal error: Call to a member function on a non-object in E:/inberkong/public_html/phproot/testjava.php on line
错误原因:用户Java class文件没有存放在 x:/Java Class文件存目录/ 中或者x:/Java Class文件存目录/不存在
解决办法:1 确定java.class.path ="C:/PHP/extensions/php_java.jar;x:/Java Class文件存目录/ 正确
2 确定此目录下有在PHP调用的Class文件并确定是正确的
正确的配置如下:
第一步:确定环境正确
默认以上环境配置正确
PHP目录:C:/PHP
JDK目录:D:/j2sdk14101
第二步
找到C:/WINDOWS下的php.ini
1 找到extension_dir并配置 确保其目录上有php_java.jar php_java.dll
extension_dir = "D:/PHP/extensions"
2 找到;extension=php_java.dll将此配置信息前的分号去掉
extension=php_java.dll
3 文件找到[java]之后的东西配置相关内容
[Java]
java.class.path ="C:/PHP/extensions/php_java.jar;C:/PHP/php_for_class/"
java.home = D:/j2sdk14101/jre
java.library = D:/j2sdk14101/jre/bin/server/jvm.dll
java.library.path = C:/PHP/extensions/
第三步
写一个Java文件并编译后放在C:/PHP/php_for_class/
Test.java文件如下:
pac
4000
kage Test;
public class Test
{
public String getMessage(String dd)
{
return "<font color=green>Hello PHP ! I am from JAVA.</font>"+dd;
}
}
写一个PHP文件testjava.php 调用Test包中的Test类
<?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"))."<br><BR>/n";
$b=new Java("Test.Test");
$x=$b->getMessage(" <br><font color=red>Hello Java! I am from PHP!</font>");
echo $x;
?>
显示结果:
Java version=1.4.1_01
Java vendor=Sun Microsystems Inc.
OS=Windows XP 5.2 on x86
星期四,一月 12, 2006 at 3:00:51 下午 中国标准时间
Hello PHP ! I am from JAVA.
Hello Java! I am from PHP!
相关文章推荐
- 比较两种php调用Java对象的方法
- 两种php调用Java对象的方法
- 两种php调用Java对象的方法
- 两种php调用Java对象的方法
- 比较两种php调用Java对象的方法
- 两种php调用Java对象的方法
- Java父类对象调用子类实体:方法重写与动态调用
- java创建一个子类对象是会调用父类的构造方法会不会创建父类
- php面向对象中static静态属性和静态方法的调用
- java 反射机制 / 反射new 对象 / 反射方式调用方法
- 用jni API 访问java对象的属性,方法,调用构造器
- 关于Java中Scanner对象的hasNext()方法对实现Readable接口的对象中的read()方法调用的探讨
- JAVA动态调用当前对象里面的方法
- java反射调用配置文件构造类对象,使用其方法
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- JAVA中申请了两个对象,分别在调用方法和声明方法中把其中一个对象直接赋值给另外一个对象,运行结果,求原理。
- java 调用静态方法和实例(对象)方法的区别
- 关于java调用对象,方法的注意事项
- paip.java-asp-php-.net互相调用方法大总结
- Php调用Java的方法