Java 如何使用php';执行官';使用输入参数运行.jar

Java 如何使用php';执行官';使用输入参数运行.jar,java,php,jar,command-line-arguments,Java,Php,Jar,Command Line Arguments,我有一个php文件,它运行一个“.jar”文件。代码如下所示 exec("java -Xmx1g -jar \"C:\Users\Roxy\Documents\NetBeansProjects\Entity Extraction\dist\Entity Extraction.jar",$output); 这工作正常,没有任何错误 但是现在我需要用这个命令将一个数组(比如说,$testArray)传递到“Entity Extraction.jar”文件,并在java代码的主方法中访问它 谁能

我有一个php文件,它运行一个“.jar”文件。代码如下所示

exec("java -Xmx1g -jar \"C:\Users\Roxy\Documents\NetBeansProjects\Entity Extraction\dist\Entity Extraction.jar",$output);  
这工作正常,没有任何错误
但是现在我需要用这个命令将一个数组(比如说,$testArray)传递到“Entity Extraction.jar”文件,并在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主类中,我有

public static void main(String[] args) {
     int length = args.length;
     for (int i = 0; i < length; i++) {
          System.out.println(args[i]);
     }
}
publicstaticvoidmain(字符串[]args){
int length=args.length;
for(int i=0;i
您可以通过
打印($testArray,true)
或者您可以编写一个函数,在数组中循环并创建一个列表。

在命令行中运行jar时,在
提取之后输入的每个参数。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);

这是假设数组只包含字符串或数字。如果它包含对象或其他数组,您需要稍微操纵一下这段代码,但您会明白这一点。

只要将数组添加到exec命令中就可以了,前提是它是由字符串组成的,然后可以通过args参数在java main中访问它(它将显示为一个字符串,您必须拆分)。但是,你能详细说明一下你打算怎么做吗?首先,这听起来是件坏事……你能告诉我如何在“exec”代码中使用它,以及如何在main方法中使用它(如果你能举例说明的话)。我如何通过“print_r($testArray,true);”使用“exec”?您可以执行
exec(“这里的东西”。print_r($testArray,true)。“这里的其他东西”)
或使用
$params=print\r($testArray,true)通过变量传递它这不起作用。我添加$testArr[0]=“test1”$testArr[1]=“test2”;在“$str=…”参数之前。在我的主方法中添加bellow命令。int length=args.length;对于(inti=0;i