0

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

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

一个。清除控制台,可能是系统(windows)控制台或eclipse的控制台;或者

湾。直接阻止库在输出上打印。

关于a点:

我已经尝试过使用

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

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

也不工作。

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

关于b点:

我尝试将 System.out 重定向到新的 PrintStream,但它不起作用。这很可能是因为该库是 ac 库的包装器,并且 c 库打印绕过 java 的 System.out。因此,我不确定这种方法是否可行,因为我无法控制库的功能。我在文档中查看了一种禁用输出的方法,但还没有发现任何有用的东西。

一个可能有用的注释: 调用

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

我希望它不是。

4

0 回答 0