Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文标点输入无效的完美解决方法

 更新时间:2016年10月18日 09:57:13   投稿:mrr  
Mac OS X 下基于 Java 的程序会出现中文标点输入无效的问题,在中文输入法状态,可以输入中文字,但输入中文标点最后上去的是英文标点.这篇文章主要介绍了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 程序中文标点输入无效的完美解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java深入学习图形用户界面GUI之创建窗体

    Java深入学习图形用户界面GUI之创建窗体

    图形编程中,窗口是一个重要的概念,窗口其实是一个矩形框,应用程序可以使用其从而达到输出结果和接受用户输入的效果,学习了GUI就让我们用它来创建一个窗体
    2022-05-05
  • jdk安装、Java环境配置方法详解

    jdk安装、Java环境配置方法详解

    这篇文章主要介绍了jdk安装、Java环境配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • springboot 使用zookeeper实现分布式队列的基本步骤

    springboot 使用zookeeper实现分布式队列的基本步骤

    这篇文章主要介绍了springboot 使用zookeeper实现分布式队列,通过ZooKeeper的协调和同步机制,多个应用程序可以共享一个队列,并按照先进先出的顺序处理队列中的消息,需要的朋友可以参考下
    2023-08-08
  • jsoup如何爬取图片到本地

    jsoup如何爬取图片到本地

    这篇文章主要为大家详细介绍了jsoup如何爬取图片到本地,jsoup爬取网站信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • MyBatis-Ext快速入门实战

    MyBatis-Ext快速入门实战

    MyBatis-Ext是MyBatis的增强扩展,和我们平常用的Mybatis-plus非常类似,本文主要介绍了MyBatis-Ext快速入门实战,感兴趣的可以了解一下
    2021-10-10
  • Java使用POI实现excel文件的导入和导出

    Java使用POI实现excel文件的导入和导出

    这篇文章主要为大家详细介绍了Java如何使用POI实现excel文件的导入和导出功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • Java ThreadLocal类应用实战案例分析

    Java ThreadLocal类应用实战案例分析

    这篇文章主要介绍了Java ThreadLocal类应用,结合具体案例形式分析了java ThreadLocal类的功能、原理、用法及相关操作注意事项,需要的朋友可以参考下
    2019-09-09
  • SpringBoot中使用JWT的实战

    SpringBoot中使用JWT的实战

    本文主要介绍了SpringBoot中使用JWT的实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 一文教你如何判断Java代码中异步操作是否完成

    一文教你如何判断Java代码中异步操作是否完成

    在许多应用程序中,我们经常使用异步操作来提高性能和响应度,这篇文章主要介绍了几种常见的方法来判断Java代码中异步操作是否完成,希望对大家有所帮助
    2024-02-02
  • java 详解类加载器的双亲委派及打破双亲委派

    java 详解类加载器的双亲委派及打破双亲委派

    这篇文章主要介绍了java 详解类加载器的双亲委派及打破双亲委派的相关资料,需要的朋友可以参考下
    2017-01-01

最新评论