Не совсем очевидно, что вы пытаетесь сделать, поэтому я сделаю предположение, что вы действительно просто пытаетесь понять, как запустить код Prolog и получить результаты обратно.
В этом случае Java предоставляет классы Process :
Методы ProcessBuilder.start () и Runtime.exec создают собственный процесс и возвращают экземпляр подклассаПроцесс, который можно использовать для управления процессом и получения информации о нем.Класс Process предоставляет методы для выполнения ввода из процесса, выполнения вывода в процесс, ожидания завершения процесса, проверки состояния выхода процесса и уничтожения (уничтожения) процесса.
Возможно, более полезной будет ProcessBuilder : она позволяет вам создать полную рабочую среду (включая переменные среды), которая близко имитирует командную строку, с которой вы, вероятно, тестируете сейчас.Цитирование из Javadoc:
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Map<String, String> env = pb.environment();
env.put("VAR1", "myValue");
env.remove("OTHERVAR");
env.put("VAR2", env.get("VAR1") + "suffix");
pb.directory(new File("myDir"));
Process p = pb.start();
Помните, что если вы хотите передать информацию в созданный вами процесс, вам нужно использовать Process.getOutputStream () (это будет вашвывод на вход Пролога).Аналогично, если вы хотите получить выходные данные и ошибки Пролога, вам нужно использовать Process.getInputStream()
и Process.getErrorStream()
.
В прошлом я перепутал эти входные и выходные потоки и все еще хотел бы иметьэти часы моей жизни вернулись ....