2016-06-01 4 views
0

Ich habe eine ausführbare JAR-Datei über die Befehlszeile ausgeführt.So erhalten Sie zweidimensionale Array von Runnable Jar auf PHP

Die ausführbare JAR-Datei enthält nur den folgenden Code.

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

Dies ist der Code von PHP

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

, aber ich habe nichts von $ output, Wie kann ich ausgegeben, nachdem die JAR-Datei auf PHP läuft und Tabelle drucken?

Vielen Dank im Voraus für Ihre Antwort und Entschuldigung für mein schlechtes Englisch. Wenn Sie meine Frage nicht verstehen, machen Sie bitte einen Kommentar.

Antwort

0

Bitte setzen Sie die ausführbare Jar test.jar in das Verzeichnis, in dem Ihre PHP Datei befindet. Jetzt folgt der Inhalt der PHP-Datei:

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

Bitte sagen Sie mir sehen Sie eine Ausgabe oder nicht?

Ich habe etwas Klasse wie folgt geändert:

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

} 

Und indem man zwei Kommandozeilen-Argumente auf Lauf good und bad, bekomme ich folgende Ausgabe:

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

Pass zwei Argument ist immer noch nichts bekommen –

+0

@ matt.crawfoord Können Sie dieses Glas an der Eingabeaufforderung ausführen? Was passiert, wenn Sie die Eingabeaufforderung öffnen und Folgendes eingeben: 'java -jar test.jar good bad '? –

+0

execute jar-file: "kein Hauptmanifestattribut" –