Java 如何使用php';执行官';使用输入参数运行.jar
我有一个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代码的主方法中访问它 谁能
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