2009-03-05 3 views
2

Можно создать дубликат:
invoking a php method from javaВызов PHP из Java

Я пишу класс Java. И у меня есть некоторая логика в test.php. Один из методов этого класса Java должен вызывать test.php, , чтобы test.php выполнял некоторые вычисления и возвращал результат вызывающему Java-методу. Могу ли я сделать это с чем-то вроде следующего?

Runtime rt = runtime.getRuntime(); 
process exec = rt.exec(test.php); 

ответ

0

Если у вас установлен php cli, вы можете делать то, что вы написали здесь. Просто запустите файл php с помощью CLI.

2

Возможно, вы сможете выполнить скрипт php таким образом, но будет ли он выдавать ожидаемый результат?

призыв к PHP сделано таким образом, может работать, но это будет не хватать какой-либо контекст, что может понадобиться для работы (параметры из запроса, сеанса пользователя сфера и т.д.)

1

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

http://www.php.net/manual/en/java.examples-basic.php

РНР был мост Java на некоторое время теперь, но имейте в виду, что это является экспериментальным, в лучшем случае.

3

Вы должны использовать API-интерфейс JSR-223 для сценариев. Существует реализация PHP, которая использует Java/PHP мост:

http://php-java-bridge.sourceforge.net/pjb/

Другой чисто Java: http://www.caucho.com/resin-3.0/quercus/

Я не использовал это сам. Но продукт Quercus от Caucho использует его, поэтому я подозреваю, что он достаточно зрелый, чтобы делать все, что вам нужно.

http://quercus.caucho.com/

Вот некоторые другие ссылки, которые могут помочь вам:

https://scripting.dev.java.net/

http://jcp.org/en/jsr/detail?id=223