2

我已经按照这个教程http://www.dsl.uow.edu.au/~sk33/php5java.htm,但最后当我尝试这个时

<?php

java_require('http://localhost/test/HelloWorld.jar');
$myObj = new Java('HelloWorld');

// display Hello World
echo (String) $myObj->getHelloWorld();


?>

我得到了这个例外

PHP致命错误:未捕获[o(异常):“java.lang.Exception:CreateInstance失败:new HelloWorld。原因:java.lang.ClassNotFoundException:在java_require()路径中找不到HelloWorld。请检查路径和SEL和文件权限。负责 VM:1.5.0_14@http://java.sun.com/" at:#-10 php java.bridge.DynamicJavaBridgeClassLoader.loadClass(DynamicJavaBridgeClassLoader.java:293)

4

2 回答 2

2

您关注的教程已有 5 年历史,根据常见问题解答java_require()已弃用:

为什么 java_require() 已被弃用?

因为Java没有模块系统。

例如,如果应用程序 A 所需的旧版本的库已被缓存,则无法加载应用程序 B 所需的库“lucene-2.3.1.jar”。 无论如何链接库的尝试都会在运行时导致“NoClassDefFound”或“NoSuchMethod”错误。或者某些过程可能会抛出已检查的异常,即使它们没有声明它们。

为了保护 PHP 开发人员免受 Java 的“罐子地狱”,我从 PHP/Java Bridge 6.0 版中删除了动态类加载机制;java_require() 发出警告。

一个合适的 Java 模块系统必须使用特殊的 Java VM 钩子,这些钩子直到现在才存在。

如何加载 Java 库?

您应该按照Java 独立Java webapps文档中的说明链接您的 Java 应用程序。

于 2012-11-16T07:36:23.827 回答
1

该错误表明HelloWorld未找到该类。

验证该文件是否确实位于您用于java_require. 如果是,请检查并确保文件中的代码与教程中的描述完全一致。

于 2012-08-06T13:36:58.500 回答