Мне нужна срочная помощь от вас людей. У меня что-то очень странное, пытаясь интегрировать PHP с Java. Во-первых, мой вопрос:Проблема в интеграции PHP-Java с использованием PHP/Java Bridge
Когда я запускаю службу сервера Apache, программа работает нормально. Но, если я закрою браузер и снова открою его, программа больше не работает и дайте мне "Fatal error: Unable to create Java Virtual Machine in C:\php\java.php ..."
.
Если я перезапущу службу сервера Apache, программа работает снова, но с тем же поведением: если я закрою окно браузера и снова открою его, это не сработает.
Я проверил в Интернете, но не получил никакого решения, но нашел много людей, столкнувшихся с одной проблемой. И многие из них рассказали об ошибке в мосте PHP-Java. Так что есть решение по этой проблеме. У меня не было вариантов, и, если кто-то мог помочь, я буду признателен.
Thank you.
Мои системные характеристики:
- Windows XP
Я установил
- сервер XAMPP: - XAMPP-win32-1.6.1-инсталлятор
Это устанавливает PHP, Apache и MySQL в моей системе. Там версии следующие
- Apache версии: - Apache/2.2.4 (Win32)
- PHP версия: - 4.3.1
- Sun Microsystems JDK версии: - jdk1.6.0_16
Я достигаю этого PHP-Java extensoion, используя php-javabridge. Я скачал файл javabridge.jar из следующей ссылке: http://php-java-bridge.sourceforge.net/pjb/download.php
Я поместил загруженный файл javabridge.jar на этом пути: C:\xampp\php\ext\
Настройки, сделанные в файле php.ini для интеграции PHP-Java следующим образом.
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:\xampp\php\ext\"
I also uncomment the java extension.
extension=php_java.dll
Я добавил следующие строки в разделе «Параметры модуля» файла PHP.ini.
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
[Java]
;This points to the directory where your Java
;classes will be stored. You can designate multiple
;paths, each path separated by a semicolon.
;It must also include the location of php_java.jar
java.class.path = "C:\xampp\php\ext\JavaBridge.jar;C:\xampp\php\extensions\php_java.jar;C:\Program Files\Java\jdk1.6.0_16\jre\lib;C:\Program Files\Java\jdk1.6.0_16;C:\prog"
;java.class.path = "C:\xampp\php\extensions\php_java.jar;C:\prog"
; This points to the bin directory of the JDK.
java.home = "C:\Program Files\Java\jdk1.6.0_16\bin"
; This must point to the Java Virtual Machine (jvm.dll) file.
java.library = "C:\Program Files\Java\jdk1.6.0_16\jre\bin\server\jvm.dll"
; This must point to the location of php_java.dll.
java.library.path = "C:\xampp\php\ext;C:\Program Files\Java\jdk1.6.0_16\jre\lib"
java.java = "C:\Program Files\Java\jdk1.6.0_16\bin\javaw.exe"
класс Java, который я использую в PHP скрипт.
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;
}
}
PHP скрипт test1.php который использует выше класса Java
<?php
// Format the HTML form.
$salesTaxForm = <<<SalesTaxForm
<form action="test1.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($_POST[submit]))
echo $salesTaxForm;
else
{
// Instantiate the SalesTax class.
$salesTax = new Java("SalesTax");
// Don't forget to typecast in order to
// conform with the Java method specifications.
$price = (double) $_POST[price];
$tax = (double) $_POST[tax];
print $salesTax->SalesTax($price, $tax);
}
?>
еще раз, пожалуйста, не кричите, когда говорите Java. – Joset
Hi Joset! Я не понимаю, что именно вы хотите сказать. –