解決 Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程式中文標點輸入無效的方法

来源:http://www.cnblogs.com/cyberniuniu/archive/2016/01/20/5146661.html
-Advertisement-
Play Games

Mac OS X 下基於 Java 的程式(如 IntelliJ IDEA、jEdit 等)會出現中文標點輸入無效的問題,在中文輸入法狀態,可以輸入中文字,但輸入中文標點最後上去的是英文標點。查閱了相關資料,原來這是 Java 自己的 bug。從 Java 8u51 版本開始就出現了這個 bug,一...


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 即可。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.sql_safe_updates官方解釋如下:If set to 1, MySQL aborts UPDATE or DELETE statements that do not use a key in the WHERE clause or a LIMIT clause. (Specifica...
  • 今天,啟動MySQL伺服器失敗,如下所示:[root@spark01 ~]# /etc/init.d/mysqld startStarting mysqld (via systemctl): Job for mysqld.service failed because the control pro....
  • use mysql;ALTER TABLE `proc`MODIFY COLUMN `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL AFTER `sql_mode`;具體原因請看:http://www.cnblogs.com/....
  • 主要參考了博文:宋沄劍 -理解SQL SERVER中的邏輯讀,預讀和物理讀 和 宋沄劍 - T-SQL查詢進階--理解SQL Server中索引的概念,原理以及其他,以下內容為對其博文的讀書筆記。 1. 資料庫的數據存儲形式 在談到幾種不同的讀取方式之前,首先要理解SQL SERVER數據存儲的方式...
  • 前言 我們知道任何一種關係型資料庫管理系統都支持SQL(Structured Query Language),相對於文件管理系統,用戶不用關心數據在資料庫內部如何存取,也不需要知道底層的存儲結構,熟悉SQL,就能熟練使用資料庫。SQL的引入,使得資料庫系統需要將SQL轉換為內部的數據結構,然後與.....
  • 首先要玩 BBB,你需要買一臺 BBB,淘寶 Element14 Beaglebone Black,我購入價 RMB 310,帶數據線,沒電源適配器的。Seeedstudio 有台叫 Beaglebone Green,由於價格偏高,我連看都沒看。 題外話,淘了個適配器寫著是 5V 萬用表測卻是 2V...
  • Linux進程操作簡單小結 linux上進程有5種狀態: 1.運行(正在運行或在運行隊列中等待) 2.中斷(休眠中,受阻,在等待某個條件的形成或接受到信號) 3.不可中斷(收到信號不喚醒和不可運行,進程必須等待直到有中斷發生) 4.僵死(進程已終止,但進程描述符存在,直到父...
  • 最近在折騰linux。因為咱是搞安卓開發的,所以少不了需要搭建Android開發環境,就此小記,希望能給向我一樣的開發者一點幫助!開乾! 1.安裝JDK下載JDK包,得到的是類似於jdk-8u65-linux-x64.tar.gz的壓縮包,所以下載完成後,我們需要解壓;解壓JDK包:1 tar...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...