Я следовал этому учебнику 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 Fatal error: Uncaught [o (Исключение): "java.lang.Exception: CreateInstance failed: new HelloWorld. Причина: java.lang.ClassNotFoundException: Не удалось найти HelloWorld в пути java_require (). Проверьте путь и SEL и Файловые разрешения Ответственная виртуальная машина: 1.5.0_14@http: //java.sun.com/ "at: # – 10 php java.bridge.DynamicJavaBridgeClassLoader.loadClass (DynamicJavaBridgeClassLoader.java:293)
Учебное пособие, за которым вы следуете, составляет 5 лет и, согласно FAQ , java_require()
устарел:
Почему java_require () устарел?
Поскольку Java не имеет модульной системы.
Например, библиотека «lucene-2.3.1.jar», требуемая приложением B, не может быть загружена, если более старая версия библиотеки, требуемая приложением A, уже кэширована. Попытка связать библиотеку в любом случае вызовет ошибки «NoClassDefFound» или «NoSuchMethod» во время выполнения . Или некоторые процедуры могут выдавать проверенные исключения, даже если они не объявили их.
Чтобы защитить PHP-разработчиков от «jar hell» Java, я удалил механизм загрузки динамического класса с PHP / Java Bridge версии 6.0 ; java_require () выдает предупреждение.
Правильная система Java-модулей должна использовать специальные Java-перехватчики Java, которые до сих пор не существуют.
Как загрузить библиотеки Java?
Вы должны связать свое приложение Java, как описано в автономных Java или Java-файлах webapps .
Ошибка указывает, что класс HelloWorld
не найден.
Убедитесь, что файл действительно расположен по адресу, который вы использовали для java_require
. Если это так, проверьте и убедитесь, что код в файле точно соответствует описанию в учебнике.