Я пишу приложение на Java, которое использует следующую внешнюю библиотеку: SCPSolver (ссылка: http://scpsolver.org/).
. Библиотека выглядит как оболочка для библиотеки переменного тока и выводит некоторую информацию о стандарте.Моя проблема в том, что я хочу, чтобы мое приложение получало чистый вывод: я ищу способ либо
a. Очистить консоль, которая может быть либо системной (windows) консолью, либо консолью eclipse;или
б) прямо вверх, чтобы библиотека не печатала на выходе.
Относительно точки a:
Я пробовал оба с использованием
Runtime.getRuntime().exec("cls");
и
System.out.print("\033[H\033[2J");
и ни одна из них не работает.
Я пробовал печатать символы "\ b", но безрезультатно. Во всех этих случаях я получаю бредв выводе.
Относительно точки b:
Я пытался перенаправить System.out на новый PrintStream, но он не работает. Скорее всего, потому чтобиблиотека является оболочкой для библиотеки ac, а библиотека c печатает обход System.out в java.Таким образом, я не совсем уверен, что этот подход будет работать, так как я не контролирую, что делает библиотека.Я искал в документации способ отключения вывода и пока не нашел ничего полезного.
Возможно полезное примечание: Звонок
System.out.close();
перед тем, как попросить решателя решить проблему LP, вывод результатов не отображается.Конечно, проблема в том, что у меня больше нет потока для вывода на стандартный вывод.Может быть, решение может быть получить другой поток на той же консоли?Хотя я понятия не имею, как это сделать.
Вкратце:
Вызов lpw.solve () - это то, что печатает нежелательный вывод:
LPWizard lpw = new LPWizard();
// ...
LPSolution solution = lpw.solve();
Текущий вывод:
GLPK Simplex Optimizer, v4.65 4 строки, 4 столбца, 8 ненулевых 0: obj = 0.000000000e + 000 inf = 2.700e + 001 (4) 3: obj = 1.350000000e + 001 inf = 0,000e + 000 (0) НАЙДЕНО ОПТИМАЛЬНОГО РЕШЕНИЯ LP x1: 4,0 x2: 2,5 x3: 7,0 x4: 0,0
Я ожидаю, что этовместо этого быть никто.