Использование функции php exec для запуска jar-файла в Azure

Сначала я приведу некоторые сведения. У меня есть три файла: test.php, test.txt, myJar.jar. Вот код внутри каждого из них

test.php:

<?php
exec("java -cp myJar.jar Hello test.txt", $o);
print_r($o);
?>

фактический код, который использовался для создания файла myJar.jar:

import java.io.*;
public class Hello
{
public static void main(String[] args) throws Exception
{
FileReader file = new FileReader(args[0]);
BufferedReader reader = new BufferedReader(file);
String line = reader.readLine();
while (line != null)
{
System.out.println(line);
line = reader.readLine();
}
}
}

test.txt:

hello hello dinosir
this is a test
testing to the extreme
adding more crap here
and here

Теперь я помещаю эти файлы в htdocs и запускаю localhost / test.php, используя Chrome:
введите описание изображения здесь

Совершенно точно, что я хотел. Проблема в том, что когда я загружаю эти файлы в github и связываю их с веб-сайтом на Azure, я захожу на веб-сайт, но вижу только Array (). Я полагаю, это потому, что в Azure нет jre для запуска команды «java -cp myJar.jar Hello test.txt». Любая идея о том, как я могу установить / включить JRE на Azure, чтобы сделать test.php так же, как на моем локальном хосте

-1

Решение

Вы проверили настройки вашего сайта? Убедитесь, что Java не выключен (по умолчанию)
Страница конфигурации портала Azure для веб-сайта

2

Другие решения

Единственный способ заставить это работать в приложении Azure как PHP — это создать .bat файл. Именно так:

example.bat должен содержать следующие строки:

set PATH=%PATH%;%JAVA_HOME%/bin
java -jar %~dp0java-file.jar %*

Важно понимать, что единственное, что вы должны изменить, это java-file.jar и это должно быть обернуто %~dp0 а также %*,

Затем выполните .bat файл с php:

exec("example.bat", $output);

Это оно. Работает для меня.

0

По вопросам рекламы [email protected]