0

我对 PHP 很陌生。我正在使用带有 Apache 2.2.25 的 PHP 5.3 版本。通过启动 javaBridge.jar,我成功地访问了 java 库。

我在 PHP 脚本中使用 java 类文件时遇到问题,我收到以下错误:

hi Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Kolkata' for '5.5/no DST' instead in Unknown on line 0 Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new PrintHello. Cause: java.lang.ClassNotFoundException: PrintHello VM: 1.6.0_26@http://java.sun.com/" at: #-17 java.net.URLClassLoader$1.run(Unknown Source) #-16 java.security.AccessController.doPrivileged(Native Method) #-15 java.net.URLClassLoader.findClass(Unknown Source) #-14 java.lang.ClassLoader.loadClass(Unknown Source) #-13 sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) #-12 java.lang.ClassLoader.loadClass(Unknown Source) #-11 java.lang.Class.forName0(Native Method) #-10 java.lang.Class.forName(Unknown Source) #-9 php.java.bridge.Util.classForName(Util.java:1518) #-8 php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445) #-7 php.java.bridge.Request.handleRequest(Request.java:458) #-6 php.java.bridge.Request.handleRequests(Request.java:500) #-5 php.java.bridge.JavaBridge.handleRequests(JavaBridge.java:150) #-4 php.java.bridge.JavaBridgeRunner.doPut(JavaBridgeRunner.java:207) #-3 php.java.bridge.http.HttpServer.servi in http://localhost:8080/JavaBridge/java/Java.inc on line 195 

我已将 java 类文件放在 htdocs 文件夹中,并使用以下行修改了 php.ini 文件

java.java_home = "C:\Program Files\Java\jdk1.6.0_20\bin"
java.java ="C:\Program Files\Java\jdk1.6.0_20\jre"
java.class.path = "c:\PHP\ext\JavaBridge.jar;c:\myclasses"
java.library  = "C:\Program Files\Java\jdk1.6.0_20\jre\bin\server\jvm.dll"
java.library.path = "c:\PHP\ext" 
 extensions = php_java.dll

但是我仍然无法通过以下 PHP 脚本访问 java 类文件

<?php 
  require_once("http://127.0.0:8080/JavaBridge/java/Java.inc");
  echo "hi";
$ obj = new java("PrintHello"); 
echo $ obj->printHello("Hi ");
?>
  1. 我可以通过 PHP 5.3 脚本调用 java 类文件吗?
  2. 我需要导入 jar 文件,java_require 或 java_autoload 不起作用。

任何与此相关的建议或文件。

先感谢您。

4

2 回答 2

0
require_once("http://127.0.0:8080/JavaBridge/java/Java.inc");

替换为真实的 localhost ip 127.0.0.1:

require_once("http://127.0.0.1:8080/JavaBridge/java/Java.inc");

并且请不要在变量和美元字符之间放置空格$obj

于 2013-07-16T08:24:14.053 回答
0

我从未使用过 javabridge(也从未听说过),但是对于您收到的警告:

这是一个非常典型的错误,它是由于您的 php.ini 中没有指定时区造成的。php.ini 的位置在linux系统中通常是/etc/php/php.ini。打开它并搜索该行:

date.timezone = 

在此处填写您的时区(如果您没有这样的行,请填写),可能的时区列表位于此处:

http://php.net/manual/en/timezones.php

于 2013-07-16T08:24:28.930 回答