JNI实现Java控制台清屏(JDK13)

本文介绍了如何使用Java Native Interface (JNI) 在Windows下实现控制台清屏功能。由于Java本身无法直接完成此操作,作者通过JNI调用本地C语言的dll,详细阐述了从创建Java类、生成头文件、编写C代码、编译dll到最终在Java程序中加载和调用dll的全过程。
摘要由CSDN通过智能技术生成

使用JNI实现Windows下的控制台清屏(JDK13)

​ 事情的起因是这样的:学校的实验课要求做一个棋类的应用,自己设计spec来实践软件知识。然而在设计显示棋盘的时候,我震惊地发现使用Windows下Java实现控制台清屏还真的没什么办法。为了更新棋盘,当然要频繁清空控制台的显示。控制台作为显示本来就够low了,要是再没点要求,那也太混了。

​ 网上查找了一圈,总体来说有几种:

​ ①:打印到输出一堆空行,直接把上一层的输入顶出显示区域。简直要把人看乐了。这有什么用啊??鼠标滚轮挪一挪,拙劣的实现方法就暴露无遗了。这就好像大学校舍里的破旧宿舍楼,留在校园内部,外部用一圈好看的大楼藏住,有什么用啊,大学是公共区域谁都能进,往里一看就都知道了。

​ ②:stackoverflow上的答案,被人用机翻翻了好几个版本,意思是调用RunTime.getRuntime().exec(“cls”)来执行命令行的清屏命令。可是在IDEA中实际用了一下却报错,不知道为什么找不到这个命令,明明在cmd中直接cls是可以的啊?也许是IDEA的问题。不过后来我不纠结这一点了,因为原来这个方法的效果是在新开的进程中执行命令,那样的话即便cls能执行,也不能影响到当前进程。网上似乎还有方法将标准输出重定向,但是为了实现一个清屏功能,显得过于大费周章。

​ ③:使用Java本地方法,调用本地的c语言的dll,c中的函数只需要System(“cls”)就行了,很方便。不过这方面网上的教程都不是很全࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值