Intereting Posts
Как я могу вставить реальное время события в базу данных с помощью php mysqli? Laravel angularjs Request :: ajax () всегда false ErrorException: предупреждение: заголовок может содержать не более одного заголовка, обнаружена новая строка как я могу получить идентификатор, сгенерированный в последнем запросе php с sql server Взрыв по массиву разделителей Laravel 4 Auth :: попытка использовать либо электронную почту, либо имя пользователя и пароль Обновление базы данных с помощью ссылки html link с помощью ajax php mysql Оператор приоритета 'OR' и '=' в PHP Неустранимая ошибка: вызов частного объекта MyObject :: __ () из недопустимого контекста PHP: обнаружение, когда значение переменных было изменено Получить большой миниатюры видео в facebook с использованием графика Регулярные выражения для имени skype в PHP Symfony2 Doctrine2 – генерировать аннотацию Many-to-Many из существующей базы данных по доктрине: mapping: import Идеальная структура папок структуры MVC Как создать модель Laravel без Красноречивого?

Как запустить Java-код (.class) с помощью php и отображения на той же веб-странице

Я пытаюсь запустить java-программу, используя php-скрипт.

Во-первых, php отображает форму, в которой пользователи вводят два значения: Цена и ставка налога с продаж. Затем он извлекает значения и передает их в java-программу (предварительно скомпилированную как .class-файл).

Я не уверен, где печатается вывод, если вообще работает java-код. Моя конечная цель – показать результат пользователю на странице html.

Я загружаю содержимое своего файла на свой веб-сервер и пытаюсь запустить его оттуда.

Обновить:

Как я могу использовать shell_exec или exec для запуска Java-кода? Мне нужно передать параметры (price, salesTax) в shell_exec. Где хранится возвращаемый выход?

PHP-код:

> <?php > > $salesTaxForm = <<<SalesTaxForm > > <form action="SalesTaxInterface.php" method="post"> > > Price (ex. 42.56):<br> > > <input type="text" name="price" size="15" maxlength="15" > value=""><br> > > Sales Tax rate (ex. 0.06):<br> > > <input type="text" name="tax" size="15" maxlength="15" > value=""><br> > > <input type="submit" name="submit" value="Calculate!"> > > </form> > > SalesTaxForm; > > if (! isset($submit)) : > > echo $salesTaxForm; > > else : $salesTax = new Java("SalesTax"); > > $price = (double) $price; $tax = (double) $tax; > > print $salesTax->SalesTax($price, $tax); > > endif; > > ?> 

Код Java:

 import java.util.*; import java.text.*; public class SalesTax { public String SalesTax(double price, double salesTax) { double tax = price * salesTax; NumberFormat numberFormatter; numberFormatter = NumberFormat.getCurrencyInstance(); String priceOut = numberFormatter.format(price); String taxOut = numberFormatter.format(tax); numberFormatter = NumberFormat.getPercentInstance(); String salesTaxOut = numberFormatter.format(salesTax); String str = "A sales Tax of " + salesTaxOut + " on " + priceOut + " equals " + taxOut + "."; return str; } } 

shell-exec выполняет команду, которую вы передаете ей. Чтобы использовать это, вам нужно добавить метод Main в свой класс и передать свойства, подобные аргументам в строке comand, поэтому в конце это должно выглядеть так:

Это код, который вы должны выполнить на php

  $output = shell_exec('java SalesTax 10.0 20.0'); 

Где SalesTax – ваш класс java, 10.0 – первый аргумент, а 20.0 второй.

Ваш основной метод должен быть чем-то вроде этого

 public static void main(String args[]){ double price = Double.valueOf(args[0]); double salesTax = Double.valueOf(args[1]); String output = SalesTax(price,salesTax); System.out.println(output); } 

Это очень простая реализация, вы все равно должны добавлять проверки и некоторые другие вещи, но я думаю, что это основная идея. Возможно, должно быть проще просто перенести его на php.

Надеюсь, вы найдете это полезным. 🙂

Я не эксперт по PHP, но вы можете сделать это несколькими способами:

  • Используйте что-то вроде shell_exec или сделайте системный вызов

  • выставить свою Java-логику через веб-сервис

  • Не делай этого! Если ваш опубликованный код – это все, что происходит, просто перепишите форматирование в php или напишите все в java.

  • вероятно, какой-то другой странный способ

Поэтому, как только вы выберете путь для своего материала на стороне сервера, если вы хотите отображать результаты без перезагрузки страницы, вы захотите использовать некоторые javascript и, скорее всего, некоторые jQuery.ajax или, возможно, некоторые jQuery('.target-area').load .