как передать строку JSON из php в основной метод java и запустить настройку

У меня есть php-файл, который хранит строку Json в $ result. Теперь у меня есть Java-программа, которая обрабатывает ее, и основной func возвращает массив строк.
Будучи новичком в Java, я не уверен, какой аргумент передать при создании конфигурации запуска. И когда я пытаюсь экспортировать исполняемый файл jar (оставляя аргументы конфигурации запуска пустыми), он говорит, что метод main не найден в классе. Я чувствую, что это как-то связано с передачей аргументов, но я не уверен, как это сделать. Извините за этот нубский вопрос.
Вот мои коды:

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

0

Решение

Я считаю, что вам нужно главный() метод, который вызывается для инициализации вашего Java-класса. Затем JSON будет передан в переменную args [].

Кроме того, я бы процитировал строку JSON, которую вы отправляете через CLI.

0

Другие решения

Основной метод в Java должен выглядеть следующим образом

public static void main(String[] args){
}

класс, содержащий этот метод, называется Основной класс
и потому что main() метод должен быть voidи для того, чтобы вернуть результат или вывод на ваш php, вы можете использовать System.out.print(), вам нужно будет найти подход к передаче массива как результата (возможно, форматировать результат как JSON)

для запуска configuariton вы можете указать имя основного класса в самой команде

$out=shell_exec("java -jar /JiraInfo.jar com.my.package.fooClass $result");

или установите его в манифест JAR файл.

Manifest-Version: 1.0
Created-By: 1.7.0_06 (Oracle Corporation)
Main-Class: com.my.package.fooClass
0

По вопросам рекламы [email protected]