【发布时间】: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 文件是您可以尝试的另一件事。