$結果にJson文字列を格納するPHPファイルがあります。私は今、それを処理するJavaプログラムを持っており、メインfuncは文字列配列を返します。 Javaに新しいので、実行コンフィギュレーションを作成するときにどの引数を渡すべきかわかりません。そして、runnable jarをエクスポートしようとすると(run configの引数は空のままです)、mainメソッドがクラスに見つかりません。私は引数の渡しとは何かを感じますが、それをどうやって行うのかはわかりません。このnoobの質問に申し訳ありません。 は、ここに私のコードです:phpからjavaメインメソッドにJSON文字列を渡してコンフィグレーションを実行する方法
package jiraBurnDown;
public class JiraCurrentSprintBurnDownDataAttributes {
public long _startTime = 0;
public long _endTime = 0;
public String sprintResponse;
public String _statisticsField = "";
public Map<String, JSONArray> _changes = new HashMap<String, JSONArray>();
public Map<String, IssueState> _changesByIssue = new HashMap<String, IssueState>();
public class IssueState {
public boolean isInSprint = false;
public Double estimatedWork = 0.0;
public IssueState(boolean isInSprint, Double estimatedTime) {
this.isInSprint = isInSprint;
this.estimatedWork = estimatedTime;
}
public String[] main(String sprintResponse) {
String res[]=null;
JSONObject obj = (JSONObject) JSONValue.parse(sprintResponse);
if (obj != null) {
//createEmptySeries();
res=extractAllInfo(obj);
}
else
System.out.println("Not Working ");
return res;
}
}
private String[] extractAllInfo(JSONObject obj) {
String statisticField =extractStatisticsFieldName(obj);
String time=extractStartAndEndTime(obj);
String changes=extractChangesInfo(obj.get("changes"));
String workData=extractAndSaveBaseLine(obj.get("workRateData"));
String scopeChanges=extractAndSaveScopeChange();
String[] info=new String[5];
info[0]=statisticField;
info[1]=time;
info[2]=changes;
info[3]=workData;
info[4]=scopeChanges;
return info;
}
private String extractStatisticsFieldName(JSONObject obj) {
Object rawObj = obj.get("statisticField");
if (rawObj != null && rawObj instanceof JSONObject) {
_statisticsField = ((JSONObject) rawObj).get("name").toString();
//addPoint(DataAttributes.DEFAULT_SERIES_NAME, _statisticsField);
}
return _statisticsField;
}
//and other functions to process the JSON obj
と私のPHPファイルは
$result=curl_exec($ch);
curl_close($ch);
$result=json_decode($result, true);
$result=json_encode($result);
$out=shell_exec("java -jar /JiraInfo.jar $result");
var_dump($out);
私はそれを行い、マニフェストファイルは正しいクラスを示しています。しかし、私はPHPページを読み込むときに何も起こりません。 objが正しくjavaコードに渡されているかどうかを確認する方法はありますか? – user3387677
あなたはこれを1ステップずつ実行することができます。例えば、Javaアプリケーションは、渡されたデータの長さを返します(system.out)。これは 'main()'の中で 'args [0]'を使って読み取ることができます。適切な長さ、次に次のステップを踏み出す... Javaアプリケーションのファイルにいくつかのログを追加してみてください。それはプログラムのトレースに役立ちます – Yazan