免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4898 | 回复: 10

在linux下用php调用java类,变量显示为Object id #xx…… [复制链接]

论坛徽章:
0
发表于 2008-07-22 10:50 |显示全部楼层
配置环境:
debian+apache2.0.63+php5.1.6+php-java-bridge5.2.2+jdk1.6.0_06

在debian下配置php调用java类环境,貌似成功,phpinfo的相关字段如下:

未命名1.JPG

但通过测试语句获得的变量结果均显示为Object id

测试语句如下:
<?php
require("Java.inc");
phpinfo();
print "\n\n";
$system = new Java('java.lang.System');

// demonstrate property access

echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$system->getProperty('os.version') . ' on ' .
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$system->getProperty('os.arch') . ' <br />';
// java.util.Date example

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$formatter = new Java('java.text.SimpleDateFormat',
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter->format(new Java('java.util.Date'));
?>


显示结果如图:
未命名.JPG

请问各位有过类似的经历吗?

刚刚开始看java,还弄不明白原因,请各位指点下,谢谢

[ 本帖最后由 smilingboy 于 2008-7-22 10:52 编辑 ]
未命名.JPG

论坛徽章:
0
发表于 2008-07-22 11:06 |显示全部楼层
看php.net关于java的信息

object id说明你返回的是个对象。java是个对象化的语言,想要拿到真正数据,就要扒掉它的外套~,所以java的人都比较坏(希望java版的人不混这里)

论坛徽章:
0
发表于 2008-07-22 12:13 |显示全部楼层
原帖由 james.liu 于 08 7 22 11:06 发表
看php.net关于java的信息

object id说明你返回的是个对象。java是个对象化的语言,想要拿到真正数据,就要扒掉它的外套



呵呵,这个我大致明白,就像php下获得的resource id一样

但看网上不少的说明,几乎都很肯定的讲,用哪个测试语句应该是可以直接获取对象值的~~

是不是我配置错了?如果没错,应该怎样解决这个问题?

希望在我把书看到哪个地方之前知道怎么剥除它的"壳"

论坛徽章:
0
发表于 2008-07-22 17:28 |显示全部楼层
代码没问题,我试了正常。
估计是java bridge的问题,因为我是用在php4上的版本

论坛徽章:
0
发表于 2008-07-22 17:40 |显示全部楼层
另外可以试试这么写:
$System = java("java.lang.System");

论坛徽章:
0
发表于 2008-07-22 22:19 |显示全部楼层
原帖由 sunnyfun 于 08 7 22 17:40 发表
另外可以试试这么写:
$System = java("java.lang.System");



会不会是java.inc导致的?

不把这个文件require的话会找不到java类

包含这个文件就会运行貌似正常,但返回值总是对象id...

楼上的兄弟能不能把php4下的这个文件给我倒一下?

另:php4做这个整合没有出问题吗?想过降版本,但总是觉得装到最新,免得以后升级了,而且能有最新的特性...估计又钻牛角尖了

论坛徽章:
0
发表于 2008-07-23 10:58 |显示全部楼层
原帖由 smilingboy 于 2008-7-22 22:19 发表



会不会是java.inc导致的?

不把这个文件require的话会找不到java类

包含这个文件就会运行貌似正常,但返回值总是对象id...

楼上的兄弟能不能把php4下的这个文件给我倒一下?

另:php4做这个整合没 ...


我是用安装扩展的方式使用的。貌似现在的版本不带那个扩展了 -_-!

论坛徽章:
0
发表于 2008-07-23 11:11 |显示全部楼层
现在貌似 sourceforge 的好多链接被和谐了
下载以前的版本用这个吧:
http://sourceforgecn.net/Projects/p/ph/php-java-bridge/

论坛徽章:
0
发表于 2008-07-23 11:19 |显示全部楼层
原帖由 sunnyfun 于 08 7 23 11:11 发表
现在貌似 sourceforge 的好多链接被和谐了
下载以前的版本用这个吧:
http://sourceforgecn.net/Projects/p/ph/php-java-bridge/


总能找到办法,没给我造成多大麻烦,呵呵

能把你的配置环境说一下吗?

OA+APACHE+PHP+BRIDGE的版本,我配一下看看

论坛徽章:
0
发表于 2008-07-25 15:06 |显示全部楼层
原帖由 smilingboy 于 2008-7-23 11:19 发表


总能找到办法,没给我造成多大麻烦,呵呵

能把你的配置环境说一下吗?

OA+APACHE+PHP+BRIDGE的版本,我配一下看看

参考环境:
RHEL
jdk-1_5_0_16-linux-i586.bin
php-java-bridge_3.0.8 rc3
apache 2.0.55
php 4.4.8

是在“傻瓜集成包”的基础上做的,呵呵

1.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP