如何从PHP上的runnable jar获取二维数组

时间:2016-06-01 08:14:38

标签: java php jar

我从命令行运行了一个可运行的jar文件。

runnable jar文件只包含如下代码。

public static List<List<String>> main(String[] args) {
  String key = args[0];
  String value = args[1];
  return test(key,value);   
}
private static List<List<String>> test(String key,String Value) {
    List<List<String>> keylist = new ArrayList<List<String>>();
    for(int i=0; i<10; i++) {
      List<String> valuelist = new ArrayList<String>();
      valuelist.add(i+key);
      valuelist.add(i+Value);
      keylist.add(valuelist);
    }
    System.out.println(keylist.get(1).get(1));
     return keylist;
}

这是来自php的代码

<?php
   echo shell_exec("java -jar /Users/Test/Desktop/test.jar", $output);
?>

但我从$ output中得不到任何东西, 如何在PHP上运行jar文件并打印到表后获得输出?

提前感谢您的回答,对不起我的英语不好。如果您不理解我的问题,请发表评论。

1 个答案:

答案 0 :(得分:0)

请将可执行jar test.jar放在PHP文件所在的目录中。以下是PHP文件的内容:

<?php
   $output = shell_exec('java -jar test.jar good bad');  
   echo "output is $output"
?>

请告诉我你看到有什么输出吗?

我稍微修改了你的课程如下:

import java.util.ArrayList;
import java.util.List;

public class Test {

public static void main(String[] args) {
    String key = args[0];
    String value = args[1];
    List<List<String>> results = test(key, value);
    System.out.println(results);
}

private static List<List<String>> test(String key, String Value) {
    List<List<String>> keylist = new ArrayList<List<String>>();
    for (int i = 0; i < 10; i++) {
        List<String> valuelist = new ArrayList<String>();
        valuelist.add(i + key);
        valuelist.add(i + Value);
        keylist.add(valuelist);
    }
    System.out.println(keylist.get(1).get(1));
    return keylist;
}

}

通过传递两个命令行参数goodbad来运行它,我得到以下输出:

1bad
[[0good, 0bad], [1good, 1bad], [2good, 2bad], [3good, 3bad], [4good, 4bad], [5good, 5bad], [6good, 6bad], [7good, 7bad], [8good, 8bad], [9good, 9bad]]