我正在用 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
我希望它不是。