本文转载自:
[客户端开发] Ubuntu18.0下javafx11+程序无法输入中文的解决方案
前言
这个问题一直在出现,一直在发愁该怎么搞。。
网络上面有很多这样的问题,例如:
诸如此类的。。。
我一直纳闷,只看到问题没看到解决方案。。。
然后直到有一个人问为什么没办法输入日文时候,我才发现了一些疑问:
https://stackoverflow.com/questions/58763342/how-to-input-japanese-to-textarea-in-javafx-on-linux
下面是截图:
然后这位兄弟找到了解决方案:
好了,我们追踪下去,可以发现javafx在ubuntu18.04下面是有bug的,看看怎么写:
---原来在ubuntu18.04下面用的gtk版本是2,如果是3的话会有未知错误---说来说去还真的是runtime的锅了。
好了,我们试试在程序上面添加:
java -Djdk.gtk.version=2 ...
试试:
备注:你可能会看到一行红字:
Failed to load module "canberra-gtk-module"
好了,没关系,运行:
sudo apt install libcanberra-gtk-module
然后安装成功:
然后,你会看到--分别测试jfoenix文字输入控件以及自带的textfied控件,都能正常输入。
总结
针对ubuntu18.0.4来说,运行程序---打包时候请指定默认的gtk version=2 ---
-Djdk.gtk.version=2