java - 我可以用 Java 找到控制台宽度吗?

标签 java console

有没有办法找到运行我的 Java 程序的控制台的宽度?

如果可能的话,我希望这是跨平台的......

我不想更改缓冲区或窗口的宽度,我只想知道它的宽度,以便正确格式化正在打印到屏幕上的文本。

最佳答案

没有针对此问题的可靠跨平台解决方案。确实,在某些情况下无法知道真正的控制台宽度是多少。

(请参阅其他答案以了解在某些时间和/或在某些平台上有效的方法。但请注意限制...)

例如,在 Linux 系统上,您通常可以从 LINES 和 COLUMNS 环境变量中找出名义终端尺寸。当您调整某些“终端仿真器”窗口的大小时,这些变量会自动更新,但情况并非总是如此。实际上,在通过 telnet 协议(protocol)连接的远程控制台的情况下,无法将实际终端尺寸获取到用户的 shell。

编辑:只是补充一点,如果用户在启动 Java 应用程序后在 Linux 上更改了他/她的 xterm 的尺寸,Java 应用程序将不会收到通知,也不会看到新维度反射(reflect)在其 LINESCOLUMNS 环境变量的副本中!

EDIT 2:我的错误:LINESCOLUMNSbash shell 变量,它们没有被导出默认为环境。您可以通过在运行 Java 应用程序之前运行 export COLUMNS LINES 来“修复”此问题。

关于java - 我可以用 Java 找到控制台宽度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1286461/

相关文章:

java - 如何在没有模型的情况下查找 JSON 中的特定元素

java - 关于双参数方法引用的困惑

java - 如何在 JUnit 测试中初始化对象?

scripting - 开发时使用控制台的最佳方式是什么?

ruby-on-rails - Paperclip:如何在 Rails 控制台中存储图片?

java - 销毁应用程序时保留静态成员值是否正常?

java - 从 jar 创建可执行文件

c# - 控制台应用程序中的命令行当前工作目录

javascript - Chrome/Firefox console.log 总是附加一行 'undefined'

C++ 控制台程序在完成前关闭。