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

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

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

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

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

Обновить:

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

PHP-код:

>  > $salesTaxForm = << > 
> > Price (ex. 42.56):
> > value="">
> > Sales Tax rate (ex. 0.06):
> > value="">
> > > >
> > 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; } } 

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

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

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

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

Где SalesTax – ваш class 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 .