【问题标题】:How can i code my java code to make PHP exec command store answer?我如何编写我的 java 代码以使 PHP exec 命令存储答案?
【发布时间】:2012-04-07 03:01:35
【问题描述】:

好的,我有一些java代码:

public static void main(String[] args){
    if(args.length == 2){
        try {
        System.out.print(DecryptHash(args[0],args[1]));
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    else if(args.length == 3){
        try {
            System.out.print(GenerateHash(args[0], args[1], args[2]));
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    else
        System.out.println("Wrong command");

}

我想在 php 中使用这个类。所以我像这样使用de command exec,

exec("java -jar VerifyHash \"$Key\" \"$SignedHash\"",$DecryptedHash);
print_r(array_values($DecryptedHash));

但结果如下:Array ( )

所以我决定看看是不是我传递给 exec() 的命令是错误的,所以我回应它并在命令 shell 中手动传递命令,它起作用了。

我的 jar 与我的 .php 位于同一目录中,我做错了什么?是不是因为我返回的值不正确(System.out.print),是因为我应该指定.jar的完整路径?

【问题讨论】:

  • java 命令在 PHP 的搜索路径中吗? exec ('echo $PATH' ) 会产生什么?您也可以尝试指定 java 的完整路径。
  • 好主意,没用,我指定了 who 路径,但我仍然从我的 Array 中一无所获
  • 您可以尝试将错误流重定向到标准输出:将2>&1 附加到命令末尾。确保 PHP 有权读取 jar 文件是您可以尝试的另一件事。

标签: java php exec


【解决方案1】:

不知道是否有帮助,但应该是:

exec("java -jar VerifyHash.jar \"$Key\" \"$SignedHash\"",$DecryptedHash);

VerifyHash.jar 是你编译的 java 程序。

【讨论】:

  • 哦,我没有复制好的版本的代码我已经做了这个修改但没有解决问题。对不起,我的错。
【解决方案2】:

你试过没有 array_values 的 print_r 还要包装你的数组?

【讨论】:

  • 只需 print_r($DecryptedHash);
  • 如果您通过编辑答案而不是添加评论来添加信息,则更容易找到。
  • 抱歉,在 iPhone 上打字不容易。理解我的建议真的有那么难吗?
  • 一点也不,你的回答很好。我只是建议您将 "Just print_r($DecryptedHash);" 添加到答案中,而不是创建评论。这样更容易找到相关信息。
  • 没有帮助,同样的结果只是给了我 Array()。
【解决方案3】:

发现问题...我在java 7中编译了.JAR并且服务器上安装了java6...

我应该多喝咖啡:S

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 2020-07-16
    相关资源
    最近更新 更多