|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
|
Наставник |
|
||||||||||
Опытный Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 4 Всего: 15 |
Тут повнимательнее покопался с php.ini и обнаружил, вот такую строчку
;extension=php_java.dll, после чего очень удивился, не уж то PHP может работать с кодом Java. Просмотрев несколько книг, нашел, что да¸PHP замечательно взаимодействует с Java. Что меня очень порадовала, т.к. открывается дополнительная мощь языка Java, и теперь отпадает проблема скрытия кода, что для меня было очень актуальным. Кому интересно, настроить PHP для взаимодействия с Java, можно следующим образом. 1. Раскомментируем в php.ini строку extension=php_java.dll 2. Добавляем или находим (у меня уже были эти строки в php.ini, только они были замоменированы) следующие строки в php.ini [Java] java.class.path = "e:\Maguma Desktop\php\extensions\php_java.jar;e:\myjava\packages\" java.home = "e:\jdk\bin" java.library = "e:\jdk\jre\bin\server\jvm.dll" java.library.path = "e:\Maguma Desktop\php\extensions" // e:\myjava\packages\ - это туда вы должны помещать свои пакеты разработанные и скомпилированные на Java 3. Делаем restart Apache и используя функцию phpinfo(); видим, что поддержка Java включена 4. Теперь создадим очень простой php файл, который обращается к пакетам Java (пример взят из хелпа PHP, за что большое спасибо, добавлены собственные комментарии). Итак:
сохраняем в файле phpplusjava.php в результате вызвав этот php файл в окне браузера должно отобразиться примерно следующее:
5. Теперь разработает свой очень простой класс и свяжем с PHP
сохраняем в папке e:\myjava\packages и называем Sum.java, далее запускаем cmd, компилируем javac sum.jsva в результате получаем байт-код в виде Sum.class (с которым в последствии и работает, при этом код скрыт, если даже Apache по какой-либо причине сглючит). Далее создаем фаул, под названием javatest.php в котором пишем следующее
в результате вызвав этот php файл в окне браузера должно отобразиться примерно следующее:
Да уж, вроде все, принцип показал. Спасибо кто это ещё читает. Поскольку я немного удивлен, такой поддержкой со стороны PHP, мой вопрос заключается в следующем, может PHP взаимодействует не только с Java? Всем спасибо. Это сообщение отредактировал(а) Наставник - 28.12.2004, 20:33 |
||||||||||
|
|||||||||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
интересно
Добавлено @ 21:58 Можно побольше примеров и инфы? |
|||
|
||||
Наставник |
|
|||
Опытный Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 4 Всего: 15 |
Да без проблем, выложу где-то в 4:00 утра. но у меня есть вопрос, может кто-нибудь знает ответ. Поскольку я САМ немного удивлен, такой поддержкой со стороны PHP, мой вопрос заключается в следующем, может PHP взаимодействует не только с Java? Это сообщение отредактировал(а) Наставник - 28.12.2004, 22:05 |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Тока желательно примеры не из документации, а из книги, а то первая доспупна всем
Ты показал примеры использования т.е вызова Java функций из PHP, можно ещё показать как например получить информацию с аппета в PHP код. Спасибо. Это сообщение отредактировал(а) Opr - 28.12.2004, 22:12 |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Есть взаимодейсвие с .NET (http://www.devarticles.com/c/a/PHP/Using-t...embly-in-PHP/2/)
Только добавлю, что на данный момент эти библиотеки экспериментальные... Это сообщение отредактировал(а) Opr - 28.12.2004, 23:28 |
|||
|
||||
Наставник |
|
|||
Опытный Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 4 Всего: 15 |
1. Насчет книги, в ней было написано про взаимодействие PHP + Java всего 1 страница, пример который привел там автор, был не верно написан, сам код на Java.
2. ссылка на дополнительный пример взаимодействия java и php http://www.onlamp.com/pub/a/php/2001/06/14...jav.html?page=2 А вообще я очень рад, за такую связь, ведь теперь можно как минимум получить полноценное множественное наследование, даже в 4-оё версии, да и не переживать за то, что клиент будет видеть код. Уже нашел одну CMS систему написанную на Java. http://webcontent-m1.com/m1/en/ Ещё одним плюсом - это доступ к БД, поскольку я знаю как тяжело осуществляется доступ к БД на JDBC-ODBC, и знаю как легко в PHP, то лучше всего данные брать из БД с помощью БД передавать в Java, обрабатывать и возвращать PHP. Повторю свой вопрос ещё раз.. Поскольку я САМ немного удивлен, такой поддержкой со стороны PHP, мой вопрос заключается в следующем, может PHP взаимодействует не только с Java? Я спрашиваю, т.к. у меня установлено Maguma Studia? а там есть возможность визуально редактировать php.ini, т.к. вот в разделе подключения расширений для php, есть одна очень замечательная галочка, что-то типа .NET -- я «свалюсь» со стула если и такую связь PHP + . NET имеется в языке PHP. С Java было все более менее понятно, когда стал просматривать php.ini, а вот о .NET пока не нашел ни одного слова. Добавлено @ 22:30
ЗАМЕЧАТЕЛЬНО, спасибо за ссылку... разбираюсь. |
|||
|
||||
skalex |
|
||||
Хороший человек Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 1 Всего: 23 |
Очень интересно... Действительно работает...
Только при запуске примера из документации к PHP у меня вылетает ошибка:
Такого каталога (или файла) у меня действительно нет... Но что это за ошибка? Java сама по себе у меня работает без претензий (версия 1.4.2_04). Далее идет результат работы скрипта. Вот мои настройки в php.ini
P.S. Насколько я знаю, в java.class.path надо еще добавлять путь [каталог установки java]/jre/lib/rt.jar (чтобы получить доступ к пакетам java.*, javax.* и т. д.). |
||||
|
|||||
Наставник |
|
|||
Опытный Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 4 Всего: 15 |
1. Думаю Вам надо прописать следующий путь
java.home = "c:\java\j2sdk\bin" вместо
2. Надо бы указать, где вы будете хранить свои .class, для этого надо добавить в строку java.class.path = "c:\php\extensions\php_java.jar" следующее java.class.path = "c:\php\extensions\php_java.jar;c:\myjava\packages\" соответственно, на диске c, создать папку myjava\packages и в ней хранить свои .class Успехов. |
|||
|
||||
skalex |
|
|||
Хороший человек Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 1 Всего: 23 |
Да все это мне понятно... Когда я попробовал другой пример (классический HelloWorld) ошибка не появилась...
Интересный факт: если настройка java.home не установлена, то все равно все работает . |
|||
|
||||
Наставник |
|
||||
Опытный Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 4 Всего: 15 |
Если вы говорите, про пример, который приведен при создании поста, то у меня все работало... хм, странно...
очень интересно, может быть PHP читает системную переменную окружения PATH, в которой у вас прописан путь к c:\java\j2sdk\bin". Это сообщение отредактировал(а) Наставник - 29.12.2004, 15:50 |
||||
|
|||||
skalex |
|
|||
Хороший человек Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 1 Всего: 23 |
Я скопировал пример из документации. И кстати, запускал из командной строки без Apache. Даже без переменной окружения работает! |
|||
|
||||
Наставник |
|
|||
Опытный Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 4 Всего: 15 |
Вообще замечательно значит Apache не нужен, а вот с тем как PHP понимает где находится javac надо бы разобраться. |
|||
|
||||
skalex |
|
|||
Хороший человек Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 1 Всего: 23 |
Собственно так и должно быть... А зачем ему javac ??? Ведь все классы то уже должны быть откомпилированы.... |
|||
|
||||
Наставник |
|
|||
Опытный Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 4 Всего: 15 |
описался. имел ввиду java. |
|||
|
||||
skalex |
|
||||
Хороший человек Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 1 Всего: 23 |
Я попробовал даже создать простейшее окно с помощью PHP+Java.
Код TFrame.java:
Код TFrame.php
Это работает, окно появляется но сразу же пропадает... Может это связано с тем, что я запускаю из командной строки (просто сейчас нет возможности попробовать запустить в браузере). |
||||
|
|||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Избранное | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |