0

我有一个运行“.jar”文件的 php 文件。代码如下

exec("java -Xmx1g -jar \"C:\Users\Roxy\Documents\NetBeansProjects\Entity Extraction\dist\Entity Extraction.jar",$output);  

这工作正常,没有任何错误
但是现在我需要使用这个命令将一个数组(比如说$testArray)传递给“Entity Extraction.jar”文件,并在我的 java 代码中的 main 方法中访问它。

谁能告诉我该怎么做?

更新:

在我的 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主类中,我有

public static void main(String[] args) {
     int length = args.length;
     for (int i = 0; i < length; i++) {
          System.out.println(args[i]);
     }
}
4

2 回答 2

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);

这是假设数组只包含字符串或数字。如果它包含对象或其他数组,则需要稍微操作此代码,但您明白了。

于 2012-08-12T12:48:38.380 回答
0

您可以通过print_r($testArray,true);,也可以编写一个循环遍历数组并创建列表的函数。

于 2012-08-12T12:39:44.077 回答