Использование Java + PHP в Windows - PullRequest
0 голосов
/ 14 января 2012

Я думаю, смогу ли я соединить java и php без установленного Tomcat. Я только что установил jdk17, я установил PATH в C: \ jdk17 \ bin и моя первая программа выглядит так

<html>
<body>
<?php
  $system = new Java("java.lang.System");
  print "Java version=".$system->getProperty("java.version")." <br>\n";
  print "Java vendor=".$system->getProperty("java.vendor")." <p>\n\n";
  print "OS=".$system->getProperty("os.name")." ".
              $system->getProperty("os.version")." on ".
              $system->getProperty("os.arch")." <br>\n";

  $formatter = new Java("java.text.SimpleDateFormat","EEEE, 
    MMMM dd, yyyy 'at' h:mm:ss a zzzz");
  print $formatter->format(new Java("java.util.Date"))."\n";

?>
</body>
</html>

и факт, что это не работает. в браузере ничего не отображается. Я думаю, что мне нужно добавить что-то еще в php.ini, но я не знаю, что и где в файле, я могу это сделать.
Извините, я тупой по всем этим, спасибо за любую помощь.

Редактировать: Что может делать Java с PHP? Некоторые компании используют эти две, хотя я против того, чтобы ASP и C # работали лучше. Они думают, что хостинг и хранилище LINUX НЕЗАКОННЫ?

Редактировать: Кстати, я использую IIS в качестве своего веб-сервера, а не традиционного Apache, спасибо за вашу заботу.

Редактировать: Я думаю, что сейчас я в полной растерянности относительно мира Java (Tomcat, apache, xxxsuits, ant, soap, xxxprotocol ....). Может ли кто-нибудь опубликовать короткий пост, чтобы суммировать все это? [что-то легко понять, как лекция о Микки курс] пожалуйста.

Ответы [ 2 ]

2 голосов
/ 14 января 2012

Вот ваша проблема:

new Java("java.text.SimpleDateFormat","EEEE, 

Я не знаю ни одного объекта под названием «Java» на PHP, который вы получите из коробки, просто установив Java.Я думаю, что вы пытаетесь выполнить интеграцию с Java Bridge, а это значит, что вам нужно скачать дистрибутив Java Bridge и выполнить сервер Java Bridge перед выполнением вашей страницы PHP.

Java отличается от PHP, потому что этоскомпилирован.PHP интерпретируется, что означает, что вы его не компилируете.Интерпретатор PHP читает исходный код во время выполнения и интерпретирует исходный код, чтобы заставить его выполнять инструкции, которые действительно понимает компьютер.Это означает, что вы развертываете исходный код на производственных серверах.Это также означает, что вы можете просто изменить исходный код и повторно запустить файл, и он изменит свое поведение.

Java отличается.Исходный код анализируется во время компиляции, когда разработчик пишет код.Компиляция переводит исходный код в инструкции перед развертыванием.Это означает, что исходный код не развернут.Поэтому Java не тратит дополнительное время во время выполнения, чтобы преобразовать исходный код в инструкции.Это сделано до развертывания.Java также преобразует байт-код (инструкции Java) в нативные инструкции, используя нечто, называемое JIT (просто во время компиляции).JIT быстро сходит с ума.Java намного быстрее, чем PHP во время выполнения.Но если вы хотите изменить поведение, вы должны изменить исходный код и перекомпилировать его.Ant - это инструмент, который помогает компилировать, упаковывать и развертывать код Java.Существует также Maven, но у него есть более высокая кривая обучения.Многое из этого - та же история и для C #.Это также скомпилированный язык.

Структура поддержки Java огромна.Существует множество инструментов и библиотек для Java, которые просто недоступны для других стеков.Такие вещи, как Lucene, Spring, Hadoop, Tomcat, генерация PDF и т. Д. Java приносит в таблицу доступ к большому количеству кода, который не всегда возможен только с PHP.Например, у меня есть сайт PHP, на котором я создаю штрих-коды и PDF-файлы этих штрих-кодов.Я должен использовать Java для генерации этого и сделать так, чтобы PHP вызывал его через Tomcat.Генерировать штрих-коды, PDFs, проще в Java, потому что для этого существуют библиотеки.Работать с Java проще, чем использовать C (и безопаснее).PHP хорош в быстрой интеграции, потому что он будет запускать что угодно.

Если вы хотите сделать быструю интеграцию с Java, вы можете запустить исполняемый файл java из командной строки.PHP может выполнять exec () любой программы, а Java не отличается от представления ОС.Это просто исполняемый файл.С другой стороны, вам не нужны дополнительные инструменты, такие как Tomcat, Servlets и т. Д. Недостатком является то, что Java VM может занимать достаточное количество памяти и времени для запуска.Если вы выполняете exec () много виртуальных машин Java, вы можете легко поглотить память на вашем сервере.Здесь может помочь что-то вроде Tomcat, потому что он будет запускать долго работающую программу в пределах одной виртуальной машины Java, с которой вы можете взаимодействовать через сокеты, HTTP и т. Д. Эта единственная программа может одновременно обслуживать множество запросов.Существует множество вариантов интеграции.

http://php.net/manual/en/function.exec.php

1 голос
/ 14 января 2012

Я думаю, что лучший способ сделать это - использовать Zend Java Bridge. Это часть Zend Server CE (бесплатная).

Все предварительно настроено и работает.

http://files.zend.com/help/Zend-Server/working_with_the_java_bridge.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...