我有一个运行'.jar'文件的php文件。代码如下:
exec("java -Xmx1g -jar \"C:\Users\Roxy\Documents\NetBeansProjects\Entity Extraction\dist\Entity Extraction.jar",$output);
这没有任何错误正常工作 但是现在我需要将一个数组(比如说 $ testArray )传递给'Entity Extraction.jar'文件并在我的main方法中用java代码访问它。
有人可以告诉我怎么做吗?
更新
在我的php文件中,我有
$testArr[0] = 'test1';
$testArr[1] = 'test2';
$str = "java -Xmx1g -jar \"C:\Users\Roxy\Documents\NetBeansProjects\Entity Extraction\dist\Entity Extraction.jar ";
foreach($testArr as $param){
$str.=$param.' ';
}
exec($str,$output);
print_r($output);
在我的java Main Class中,我有
public static void main(String[] args) {
int length = args.length;
for (int i = 0; i < length; i++) {
System.out.println(args[i]);
}
}
答案 0 :(得分:1)
在命令行中运行jar时,在Extraction.jar
之后放置的每个参数都会自动进入args数组。
所以你需要在数组上运行并构建你想传递的字符串:
$str = "java -Xmx1g -jar \"C:\Users\Roxy\Documents\NetBeansProjects\Entity Extraction\dist\Entity Extraction.jar ";
foreach($testArr as $param){
$str.=$param.' ';
}
exec($str,$output);
这假设数组只包含字符串或数字。如果它包含对象或其他数组,则需要稍微操作一下这段代码,但是你明白了。
答案 1 :(得分:0)
你可以传递print_r($testArray,true);
,或者你可以编写一个循环遍历数组的函数并创建一个列表。