Подключение java модуля к php

ran

Новичок
Подключение java модуля к php

Всем доброго дня.
Возникла проблема при попытке подключить модуль работы с Java.
в php.ini подключаю
Код:
extension=php_java.dll
далее настройки модуля:
Код:
[Java]
java.class.path="c:\php\ext\php_java.jar;"
java.home="c:\Program Files\Java\jre1.5.0_06\bin\"
java.library="c:\Program Files\Java\jre1.5.0_06\bin\client\jvm.dll"
java.library.path="C:\php\ext\"
Apache запускается без ошибок, но простой тестовый скрипт из 1-й строки отваливается с ошибкой:
Код:
Fatal error: Class entry requested for an object without PHP class in C:\internet\_testing\java\test.php on line 2
PHP:
<?php
    $system = new Java('Test');
?>
Поиск в гугле по ошибке выдал одну ссылку на сайт зенда, с описанием, что проблема в 5.0.х версиях
Остальные ссылки на исходники зенда, но я в них не разбираюсь:
http://www.srcdoc.com/php_5.0.4/zend__API_8c-source.html
http://experiments.xp-framework.net/?arena,php5,Zend/zend_API.c

Через exec тестовый java класс работает, но хочется попробовать именно через модуль, раз он уже есть.

Конфигурация системы: winXP, php 5.2.0, Apache 2.2.3
Посоветуйте, как еще можна найти причину неработоспособности.
Заранее спасибо.javascript:checklength(document.vbform);
 

ran

Новичок
Автор оригинала: Alexandre
код самого класса в студию - плиииз
Любимый "Hello World" :)
Код:
public class Test{
        public String getText(){
                return "Hello World";
        }
        public static void main(String[] args) {
                System.out.println("Hello World");
        }
}
 

ran

Новичок
Alexandre
Ошибка остается та же.
Получается, если оставить код:
Код:
public class Test{
        public String getText(){
                return "Hello World";
        }
}
следовательно вывода никакого нет.
Скорее всего ошибка возникает при создании экземпляра класса, простой пример из мануала :
Код:
$system = new Java('java.lang.System');
отрабатывает с такой же ошибкой.
Это была вторая попытка за последние полгода использовать эту библиотеку, снова неудачная. Вобщем, не знаю, может проблема в экстеншине, может из-за того, что под виндой(но работоспособный *nix вариант тоже не выход, потому что девелоперы под виндовсом, поэтому только с присутствием рабочей win-версий есть смысл работать), а может у меня скилзов не хватает :)
 

DDT

Новичок
Подскажите пожалуйста принцип подключения скомпилированного java класса.

1. У меня есть исходник на java
2. Компилирую файл class

Что дальше? Куда надо положить файл class и как к нему обратиться:
PHP:
$system = new Java('java.MyClass');
или

PHP:
$system = new Java('MyClass');
 

dadoc

Новичок
1) class файл жмешь в jar
jar cvf MyClass.jar MyClass.class

2) либо копируешь jar в (JRE_HOME|JAVE_HOME/jre)/lib/ext либо в коде подгружешь через java_require

3) что бы к нему обратиться пишешь "PackageName.ClassName"
 

DDT

Новичок
спасибо большое, попробую

-~{}~ 11.09.09 14:06:

Автор оригинала: dadoc
1) class файл жмешь в jar
jar cvf MyClass.jar MyClass.class

2) либо копируешь jar в (JRE_HOME|JAVE_HOME/jre)/lib/ext либо в коде подгружешь через java_require

3) что бы к нему обратиться пишешь "PackageName.ClassName"
1. Сделал файл test.java:
PHP:
package testClass;

class JavaClass {
    public void printHello() {
        System.out.println("Hello from Java");
    }
}
2. Скомпилировал его в JavaClass.class: javac test.java
3. Сжал в JavaClass.jar: jar cvf JavaClass.jar JavaClass.class
4. Скопировал его в CLASS_PATH
5. Пытаюсь обратиться к нему:
PHP:
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
$frame  = new Java('testClass.JavaClass');

и получаю такую ошибку:
[o:Exception]: java.lang.Exception: CreateInstance failed: new testClass.JavaClass. Cause: java.lang.ClassNotFoundException: testClass.JavaClass
 

dadoc

Новичок
Что вы имеете ввиду под "скопировал его в CLASS_PATH"? CLASS_PATH можно прописать включив в него ваш jar. Вы уверены что в окружении JRE CLASS_PATH установлен правильно?
Для теста попробуйте скопировать jar файл в JAVA_HOME/jre/ext и не забудьте перезапутить java.
 
Сверху