【问题标题】:Calling a Java program in PHP and getting output在 PHP 中调用 Java 程序并获取输出
【发布时间】:2016-03-06 15:13:05
【问题描述】:

我正在编写一个 PHP 程序和一个 XAMPP 站点的一部分,该站点在我的机器的本地主机上运行。我希望该文件将它的两个字符串输入到我保存在计算机桌面上的 Java 程序中,然后将输出存储为字符串。我一直在尝试使用 shell_exec() 但我还没有让它工作。

有什么建议吗?

    <?php
$artist = $_POST['artist'];
$songname = $_POST['songname'];

    $artist = preg_replace('/\s+/', '', $artist);
    $songname = preg_replace('/\s+/', '', $songname);

    $artist=strtolower($artist);
    $songname=strtolower($songname);

    echo $artist;
    echo $songname;

    $output = shell_exec("/Users/ianterry/Desktop/CussCalc2/java CussCalc '$artist' '$songname'");
    $output = shell_exec("/usr/bin/java -version");
    echo $output;
?>

到目前为止,我在运行时得到的唯一输出是被 echo'd 的两个字符串。

【问题讨论】:

  • 你知道 $output 被 java 版本覆盖了吗?
  • 我确实意识到了这一点。我在测试前者后把它放进去,看看它是否会给出任何输出;也没有。
  • 我对 PHP 了解不多,但是查看文档 php.net/manual/en/function.shell-exec.php 我看到 “使用此函数无法检测执行失败。访问时应使用 exec()程序退出代码是必需的。”。也许改用 exec 命令并从那里调试?
  • 也许使用 proc_open 而不是 shell_exec 至少你会看到到底发生了什么

标签: java php xampp


【解决方案1】:

首先你应该检查shell_execexec是否被允许: PHP exec - check if enabled or disabled

另外,看看How to run Java program and get output in PHP?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    相关资源
    最近更新 更多