2021-05-12 14:32:11
解決 Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程式中文標點輸入無效的方法
Mac OS X 下基於 Java 的程式(如 IntelliJ IDEA、jEdit 等)會出現中文標點輸入無效的問題,在中文輸入法狀態,可以輸入中文字,但輸入中文標點最後上去的是英文標點。查閱了相關資料,原來這是 Java 自己的 bug。從 Java 8u51 版本開始就出現了這個 bug,一直到現在最新的 Java 8u72 仍然如此,但是老版本 Java 8u45 是沒有這個問題的。所以,可以採取變通的方法,在 Mac OS X 上同時裝一個老版本的 JDK 8u45,不會影響已經安裝好的新版本 JDK。然後,針對基於 Java 的程式進行小小的修改,具體如下:
1、針對 IntelliJ IDEA、AppCode、WebStorm 的修改
以 IDEA 為例,進入 /Applications/IntelliJ IDEA.app/Contents/jre 目錄,執行以下命令:
$ mv jdk jdk.backup
$ ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk jdk
重新啟動 IDEA 即可,輸入中文標點就正常啦。AppCode、WebStorm 的修改也是一樣的。
2、針對 jEdit 的修改,有兩種方法
(1)方法一:
下載一個用於 Mac OS X 環境下基於 Java 的程式通用啟動指令碼,官方地址是 https://github.com/tofi86/universalJavaApplicationStub,這個指令碼可以由你自由修改 Java 程式啟動的細節,並且能夠支援 Mac OS X 程式包裝組態檔,比如 Info.plist 等等。將這個指令碼 universalJavaApplicationStub 複製到 /Applications/jEdit.app/Contents/MacOS 目錄下,然後進入到這個目錄,執行以下命令:
$ mv jedit jedit.backup
$ mv universalJavaApplicationStub jedit
$ vi jedit
在裡面定義內部環境變數 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home,在指令碼後面找到真正啟動 java 的命令程式碼前面,設定內部環境變數 JVMClassPath=${OracleJavaFolder}/jedit.jar,儲存後退出,重新啟動 jEdit 即可。
(2)方法二:
執行以下命令:
$ cd /Applications/jEdit.app/Contents
$ mkdir Plugins
$ ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk jdk8
修改 Info.plist 檔案,增加如下的鍵值對:
<key>JVMRuntime</key>
<string>jdk8</string>
儲存後退出,重新啟動 jEdit 即可。
使用IntelliJ IDEA 13搭建Android整合式開發環境圖文教學 http://www.linuxidc.com/Linux/2015-09/123416.htm
IntelliJ IDEA 12 建立Web專案圖文詳細教學 http://www.linuxidc.com/Linux/2013-05/84213.htm
用IntelliJ IDEA開發Android程式圖文教學 http://www.linuxidc.com/Linux/2013-03/81471.htm
IntelliJ IDEA 12開發haXe NME應用設定指南 http://www.linuxidc.com/Linux/2013-01/77227.htm
IntelliJ IDEA執行Play Framework的test mode http://www.linuxidc.com/Linux/2013-07/87694.htm
Ubuntu 13.04 安裝IntelliJ IDEA 12 http://www.linuxidc.com/Linux/2013-11/93014.htm
IntelliJ IDEA 12建立Maven管理的Java Web專案(圖解) http://www.linuxidc.com/Linux/2014-04/99687p2.htm
IntelliJ IDEA 常用快捷鍵列表及技巧大全 http://www.linuxidc.com/Linux/2015-04/116398.htm
相關文章