我从命令行运行了一个可运行的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文件并打印到表后获得输出?
提前感谢您的回答,对不起我的英语不好。如果您不理解我的问题,请发表评论。
答案 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;
}
}
通过传递两个命令行参数good
和bad
来运行它,我得到以下输出:
1bad
[[0good, 0bad], [1good, 1bad], [2good, 2bad], [3good, 3bad], [4good, 4bad], [5good, 5bad], [6good, 6bad], [7good, 7bad], [8good, 8bad], [9good, 9bad]]