有没有办法禁用SCPSolver的输出?

时间:2019-05-04 17:28:58

标签: java clear system.out disable scpsolver

我正在用Java编写一个使用以下外部库的应用程序:SCPSolver(链接:http://scpsolver.org/)。

该库似乎是c库的包装,并在标准上打印一些信息。我的问题是我希望我的应用程序具有干净的输出:我正在寻找一种实现方法

a。清除控制台,它可以是系统(Windows)控制台或eclipse的控制台;或

b。直线向上,防止库在输出上打印。

关于点a:

我都尝试过使用

Runtime.getRuntime().exec("cls");

System.out.print("\033[H\033[2J");

都无效。

我尝试打印“ \ b”字符​​,但无济于事。在所有这些情况下,我的输出中都会出现乱码。

关于点b:

我尝试将System.out重定向到新的PrintStream,但是它不起作用。这很可能是因为该库是c库的包装,并且c库打印了绕过Java的System.out。因此,我不确定该方法是否有效,因为我无法控制库的工作。我在文档中寻找了一种禁用输出的方法,但尚未发现有用的方法。

可能有用的注释: 打电话

System.out.close();

在要求求解器解决LP问题之前,将阻止显示输出。当然,然后的问题是:我没有更多流可以输出到stdout了。也许解决方案可能是将另一个流添加到同一控制台?虽然我不知道该怎么做。

简而言之:

对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

我希望它不会是一个。

0 个答案:

没有答案