解决 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 即可。
解决 Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文标点输入无效的方法的更多相关文章
- 解决mac os x下 tomcat启动报 java.net.BindException: Permission denied <null>:80 错误
我在mac os x上启动tomcat的时候,报 java.net.BindException: Permission denied <null>:80,java.net.BindExce ...
- mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装
一.mac OS X下Java项目环境搭建 因为某些原因新入手了台最新版的MacBook Pro,意味着今天要花一天时间安装各种软件以及项目环境搭建╮(╯▽╰)╭ 项目环境搭建步骤: 1.安装jdk ...
- 解决Mac OS X Lion狮子系统及win7多分区教程
[绿茶教程]解决Mac OS X Lion狮子系统及win7多分区教程 工具/原料 8G的u盘制作lion系统安装盘 步骤/方法 插入U盘---开机---按住左下角“Option”键(alt ...
- 在mac os x 下升级emacs
大概是09年的时候接触到emacs这个编辑器,当时我们c语言老师用的,他自信满满,而那时我是个vimer,所以每次看他按那么多组合键我就替他感觉手指头累啊. 再后来我用了几年vim写代码,再后来用了许 ...
- Mac OS X 下安装python的MySQLdb模块
参考资料: mac os x下python安装MySQLdb模块 http://www.codeif.com/post/1073/ MAC OSX使用Python安装模块有关问题 http:// ...
- 在Mac OS X 下快速安装Nginx
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica; color: #8e68ff } p.p2 { margin: 0.0p ...
- 桂电在linux、Mac OS环境下使用出校器(支持2.14)
这是guetsec学长在三院科协学长所抓包逆向分析1.81版出校器的基础上,用python写的一款为Mac和linux环境开发的出校器. 最后我做了略微修改,支持暂时最新版本2.14.下面有直接从源码 ...
- 在MAC OS X下安装usb转串口驱动(PL2303主控芯片)
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 因为最近手里有一块STM32Discovery开发板,所以想搞一下STM32的开发,我前面的 ...
- 在Mac OS X下安装Android Studio
在Mac OS X下安装Android Studio只需要几步. 1. 下载Android Studio安装包(.dmg). 2. 打开Terminal输入java -version命令查看是否已安装 ...
随机推荐
- vue购物车的实现
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 科学计算库Numpy——数组生成
等差数组 使用np.arange()或np.linspace()生成元素是等差数列的数组. 以10为底的数组 使用np.logspace()生成元素是以10为底的数组. 数组扩展 使用np.meshg ...
- Linux命令之---which简单介绍
命令简介 which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果.也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的 ...
- Android Kotlin适用小函数
都是一些Android适用的Kotlin小函数. 1.点击空白隐藏键盘 //点击空白隐藏键盘 override fun onTouchEvent(event: MotionEvent): Boolea ...
- 图学java基础篇之IO
java io体系 如图可以看出,java的io按照包来划分的话可以分为三大块:io.nio.aio,但是从使用角度来看,这三块其实揉杂在一起的,下边我们先来概述下这三块: io:主要包含字符流和字节 ...
- python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点
python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型 操作系统工作原理介绍.线程.进程演化史.特点.区别 ...
- itchat 动态注册
动态注册时可以选择将itchat.run()放入另一线程或使用configured_reply()方法处理消息. 两种方法分别是: # 使用另一线程,但注意不要让程序运行终止 import threa ...
- leetcode 【 Remove Duplicates from Sorted Array II 】python 实现
题目: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For ex ...
- python - web自动化测试 - 元素操作 - 等待
# -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: wait.py @ide: PyCharm Community Edi ...
- Android简单的BaseExpandableList使用
1.Activity package com.example.administrator.mystudent.ExpandableListView; import android.app.Expand ...