|
Модераторы: 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
Это работает, окно появляется но сразу же пропадает... Может это связано с тем, что я запускаю из командной строки (просто сейчас нет возможности попробовать запустить в браузере). |
||||
|
|||||
Наставник |
|
|||
Опытный Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 4 Всего: 15 |
думаю, что уж графические возможности пакета swing скорее всего не будут работать корректно, хотя... Сегодня дома, протестирую, Ваш - Mace пример, даже интересно, что получится. Успехов. |
|||
|
||||
Се ля ви |
|
|||
Java/SOAрхитектор Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: нет Всего: 127 |
Интеграция достаточно поверхностная - хотелось бы иметь возможность переадресации запросов на сервлеты и использование EJB, паттернов и прокладок к БД типа Hibernate - но вообще интересно уже и это.
Кинте сюда линк из форума J2EE, что ли - а то "мужики-то не знают" Я вот совершенно случайно забрёл, просматривая репу Наставника... -------------------- |
|||
|
||||
skalex |
|
|||
Хороший человек Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 1 Всего: 23 |
Вот еще немного информации: http://detail.phpclub.net/article/com_dotnet
|
|||
|
||||
BIRD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 20.7.2005 Где: Киев Репутация: нет Всего: нет |
после всех выполненых действий (1-4) у меня выскакивает сообщение: Warning Unknown(): Unable to load dynamic libluary './php_java.dll' - Не найден указаный модуль. в php.ini у меня такие строки: [Java] java.class.path = "C:\PHP\extensions\php_java.jar;C:\myjava\package" java.home = "C:\Java\jdk1.5.0\bin\" java.library = "C:\Java\jdk1.5.0\jre\bin\server\jvm.dll" java.library.path = "C:\PHP\extensions\" в чем проблемка? |
|||
|
||||
KSF |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.4.2006 Репутация: нет Всего: нет |
А у меня при запуске примера выскакивает следующая ошибка - Apache.exe - Ошибка приложения.
Инструкция по адресу "0x01d148a9" обратиласб к памяти по адресу "0x08010200". Память не может быть "written". Использую Apache2, php5. Что не так? |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Кто нить яву на линукс ставил?
|
|||
|
||||
Endeveit |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 100 Регистрация: 2.6.2006 Репутация: нет Всего: 7 |
||||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Endeveit,
расскажи пож-та. А то я нашел способы только с back-end,ом, и то, какие то нерабочие (или я что то не так делал) Поделись впечатлениями, так сказать... |
|||
|
||||
Endeveit |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 100 Регистрация: 2.6.2006 Репутация: нет Всего: 7 |
||||
|
||||
nerezus |
|
|||
Вселенский отказник Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
|
|||
|
||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: нет Всего: 36 |
||||
|
||||
Reptor |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
конечно тема интересная но у меня вопрос а чем апплеты хуже или не подходят? Таже Java да ещё и Swing нормально работает
|
|||
|
||||
Oflashp |
|
|||
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 2.8.2007 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 2 |
Интересно. Но какой хостер в случае разработки приложения общего пользования будет включать JAVA поддержку?
|
|||
|
||||
Platon |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: нет Всего: 40 |
А у меня такой вопрос...
Можно ли запускать межстраничное приложение сайта? Было бы круто если бы такая возможность была ^_^ Я иногда изъяснаюсь непонятно, поэтому еще раз: есть сайт, а у него работает свое внутреннее приложение. Добавлено через 1 минуту и 33 секунды И плюс еще
|
|||
|
||||
gibbzy |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 97 Регистрация: 25.1.2008 Репутация: нет Всего: 3 |
думаю немного не уместно испальзовать java интерфейсы в web приложениях ибо JVM стоит далеко не у всех пользователей для всего этого JS придумали ^^
|
|||
|
||||
Sannis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: нет Всего: 13 |
Подняли старую тему, да ещё и не знаете, что Java используют ещё и для server-side программирования ;)
-------------------- |
|||
|
||||
Hidrag |
|
|||
Опытный Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: нет Всего: 25 |
А разве в этом случае нужна Jvm на клиенте? Разве не на сервере? -------------------- |
|||
|
||||
Kakadu |
|
|||
Опытный Профиль Группа: Участник Сообщений: 273 Регистрация: 19.3.2008 Репутация: нет Всего: 7 |
Народ! Неужели VJM стоит не у всех пользователей?
P.S. Разбирался в примерах вначале темы. Так и не понял что делать, если у меня нет php_java.dll. -------------------- Добрые мариносы долго кормили украдкой маленьких зерлингов. От этой украдки зерлинги пухли и дохли |
|||
|
||||
skyboy |
|
|||
неОпытный Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
||||
|
||||
Kakadu |
|
|||
Опытный Профиль Группа: Участник Сообщений: 273 Регистрация: 19.3.2008 Репутация: нет Всего: 7 |
C Java всё понял.
РНР 5.1.1. Брал из UniformServer 3.3 -------------------- Добрые мариносы долго кормили украдкой маленьких зерлингов. От этой украдки зерлинги пухли и дохли |
|||
|
||||
Sannis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: нет Всего: 13 |
Его убрали из PECL'а, видимо прохо шла разработка. Сейчас, вроде бы он, доступен на http://sourceforge.net/projects/php-java-bridge.
Если у вас *nix, то ещё подробная статья нашлась: http://www.onlamp.com/pub/a/php/2001/06/14/php_jav.html, но всё-таки 2001 год. Можно ещё рискнуть попробывать запустить файлик, но думаю он устарел. P.S. думаю стоит бросить эту затею... Это сообщение отредактировал(а) Sannis - 11.5.2008, 19:59 -------------------- |
|||
|
||||
Andrew_D |
|
|||
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 25.7.2007 Репутация: нет Всего: нет |
Делаю все так, как указано выше. Но запустить не получается :((( Выдает ошибку на строчку:
$system = new Java('java.lang.System'); Ошибка: Fatal error: Class 'Java' not found in Z:\home\localhost\w4\index.php on line 34 Что не так еще может быть ? |
|||
|
||||
nerezus |
|
|||
Вселенский отказник Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Хм, интересно ) Но смысл: проще тогда уж напрямую с джавой работать =)
|
|||
|
||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: нет Всего: 36 |
||||
|
||||
salamanq |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 7.12.2009 Репутация: нет Всего: нет |
у меня денвер стоит, в папку пхп5 на виртуальном диске в директорию ext поставил пекл.
в пхп.ини добавил [Java] java.class.path = "Z:\usr\local\php\ext\php_java.jar;E:\myjava\packages\" java.home = "E:\Java\jdk1.6.0_16\bin\" java.library = "E:\Java\jdk1.6.0_16\bin\jre\bin\server\jvm.dll" java.library.path = "Z:\usr\local\php\ext\" соо-но диск Z виртуальный созданный денвером, но выпадает ошибка запускаю старт денвер выпадает окно: приложение или библиотека Z:\usr\local\php\ext\php_java.jar не является образом программы для windows nt .... что делать.... Это сообщение отредактировал(а) salamanq - 7.12.2009, 18:07 |
|||
|
||||
SamDark |
|
|||
Добрый кот Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 1 Всего: 38 |
Народ, есть готовое решение: http://www.caucho.com/resin-3.0/quercus/
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
dobrolub |
|
|||
Опытный Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: нет Всего: 16 |
уже есть версия 4.0.2. обратите внимание на performance benchmarks http://www.caucho.com/articles/quercus.pdf
вот простейший пример, качаешь резину, ставишь, запускаешь и в директорию webapps/ROOT кладешь простейший php test.php <?php> echo "Hello World!"; ?> и всё у резинового php куча преимуществ, кластеризация делается на ура, быстродействие и др. да и инсталляция проще. Это сообщение отредактировал(а) dobrolub - 18.12.2009, 08:40 |
|||
|
||||
Mishelik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 9.10.2007 Репутация: нет Всего: нет |
пробовал настроить на php-5.2.9,
Сделал все как написано в начале темы. //php_java.jar как я понял это любое своё приложение?.. Но phpinfo() не показывает поддержку java,и программа далее $system = new Java('java.lang.System'); не выполняется ,но ошибки тоже нет.. В чем может быть проблема? |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Избранное | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |