彻底解决mac os 下javac Java命令行工具乱码问题
彻底解决mac os 下javac Java命令行工具乱码问题
- 现象
- 网上搜索的解决方法
- 一劳永逸Java虚拟机参数设置
现象
偶尔在mac os下编译Java 程序,用中文的话,乱码随之而来,因为javac和java缺省支持的是中文GBK编码。当然用纯英文(意思操作系统是英文)不会碰到这问题。不过现实中这台mac台式机,并不是以编程为主,用纯英文不太可行,还是找个解决方法吧。
网上搜索的解决方法
找了一下,javac java在mac console中文乱码的问题 这个转载页面的方法比较全面,也可行,现复制如下:
java和javac在简体中文的Mac OSX的终端(Terminal.app)环境下,默认是以GBK编码的中文输出各种诸如语法错误,数组访问越界之类的信息。
但是,Mac的终端的默认编码是UTF-8,所以javac和java在未配置的情况下会输出乱码。
解决方法有3个:
1)指定输出的编码为UTF-8
javac -J-Dfile.encoding=UTF-8
java -J-Dfile.encoding=UTF-8例如:java -J-Dfile.encoding=UTF-8 -jar xxoo.jar
2)输出英文
export LC_ALL=en3)通过iconv转码
javac something|iconv -f GBK -t UTF-8
上述有标记的行有点问题,正确的应该是:
java -Dfile.encoding=UTF-8 -jar xxoo.jar
另外,方法2)在10.13.6下测试不成功,估计Linux下应该可用(没试)。
但每次需要命令行输入,麻烦,有篇文章建议用 alias 处理:
alias javac=javac -J-Dfile.encoding=UTF-8
alias java=java -Dfile.encoding=UTF-8
还是觉的不方便,因为可能用两个版本 java 比如 apple原生的java6和ORACLE的Java8 ,,想起java虚拟机应该有参数可配置,看了下java参考文献,故此有下列自认比较彻底的解决方法。
一劳永逸Java虚拟机参数设置
java虚拟机参数设置,经常碰到的主要有以下三个变量:
JAVA_OPTS
_JAVA_OPTIONS
JAVA_TOOL_OPTIONS
这三个只有最后一个变量是java标准的且通用,故此采用:
vim ~/.bash_profile
# 添加JVM全局参数
export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
实际输出如下:
$ javac
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
用法:javac <选项> <源文件>
其中,可能的选项包括:-g 生成所有调试信息-g:none 不生成任何调试信息-g:{lines,vars,source} 只生成某些调试信息-nowarn 不生成任何警告-verbose 输出有关编译器正在执行的操作的消息-deprecation 输出使用已过时的 API 的源位置-classpath <路径> 指定查找用户类文件和注释处理程序的位置-cp <路径> 指定查找用户类文件和注释处理程序的位置-sourcepath <路径> 指定查找输入源文件的位置-bootclasspath <路径> 覆盖引导类文件的位置-extdirs <目录> 覆盖安装的扩展目录的位置-endorseddirs <目录> 覆盖签名的标准路径的位置-proc:{none,only} 控制是否执行注释处理和/或编译。-processor <class1>[,<class2>,<class3>...]要运行的注释处理程序的名称;绕过默认的搜索进程-processorpath <路径> 指定查找注释处理程序的位置-d <目录> 指定存放生成的类文件的位置-s <目录> 指定存放生成的源文件的位置-implicit:{none,class} 指定是否为隐式引用文件生成类文件 -encoding <编码> 指定源文件使用的字符编码-source <版本> 提供与指定版本的源兼容性-target <版本> 生成特定 VM 版本的类文件-version 版本信息-help 输出标准选项的提要-Akey[=value] 传递给注释处理程序的选项-X 输出非标准选项的提要-J<标志> 直接将 <标志> 传递给运行时系统
用java运行utf-8中文输入输出程序,一切正常。
备注:这个主要针对 java6 ,后续java8 等都能自动识别,不需要设置。java 7没用过,不清楚。
彻底解决mac os 下javac Java命令行工具乱码问题相关推荐
- Mac OS X中安装命令行工具Command Line Tools(无Xcode)
Mac OS X中安装命令行工具Command Line Tools(无Xcode) 简介 喜欢通过终端访问更传统的Unix工具包的Mac用户(大部分是程序员),都会选择安装Xcode IDE的可选命 ...
- mac os mysql 命令行_macos - 在Mac OS Lion上从命令行启动MySQL服务器
macos - 在Mac OS Lion上从命令行启动MySQL服务器 我为我的Mac安装了mySQL. 除了使用系统首选项中安装的mySQL.prefPane工具启动SQL服务器之外,我想知道从命令 ...
- Mac OS 下使用 afconvert 命令,处理音频格式转换
在上一篇<Mac OS 下使用 you-get 下载音悦台 MV .网易云音乐等>给大家介绍了如何下载MV.音乐等资源,但是出现了一些不常见的音频格式,导致在有些播放器上无法解码播放,所以 ...
- Android 下使用 FFmpeg 命令行工具与问题排查
目录 FFmpeg 命令行工具 将相关文件加入到项目中 修改 ffmpeg 源码 问题排查 上一篇文章 中,我们已经成功编译了 FFmpeg 的主要库并集成到了我们的 Android 应用中.我们暂时 ...
- Java命令行工具之 jstat
jstat 是JDK中提供的一个命令行工具,主要用来打印JVM 性能数据相关的统计数据.主要包含以下几个方面: 垃圾回收(GC)方面数据 编译(Compilation)相关数据 类加载信息(Class ...
- linux下的安装命令行工具下载,本地安装DEB包的3种命令行工具(适合Debian体系)
1. 前言 在本教程中,我们将学习如何使用三种不同的命令行工具(dpkg.apt和gdebi)在Debian及其衍生产品(如Ubuntu和Linux Mint)中安装本地软件包(. deb). 这对那 ...
- 解决Mac OS下JDK 1.8无法使用JMC问题
一.问题 由于应用出现了一些性能问题,准备在本地启动应用,使用JMC分析下应用运行时的详细内存信息. 本地开发环境使用macbook,由于是使用的安装包安装的jdk,直接在命令行输入jmc,就可以启动 ...
- Mac系统下如何使用命令行方式启动MySQL
首先,先去官网下载MySQL,选择Mac版本的DMG格式的文件. 官网地址为:dev.mysql.com/downloads/mysql/5.7.html 然后下载后,直接双击对应的dmg格式的文件进 ...
- jq linux下载文件,linux下的json命令行工具–jq
jq是一个很轻量却很强大的命令行下的json解析器.jq是json中的"sed"命令,它可以用来slice.filter.map.transform json数据.jq是用C编写的 ...
- 不用下载字体解决Mac系统下Python的matplotlib库中文乱码的问题
百度或谷歌matplotlib库绘图时产生中文乱码问题,得到的最多的答案就是下面几行代码: import numpy as np import matplotlib.pyplot as plt plt ...
最新文章
- Ubuntu12.04安装配置Theano
- CodeChef March Lunchtime 2018 div2
- ViBe背景建模算法
- 【ZOJ - 3703】Happy Programming Contest(带优先级的01背包,贪心背包)
- 数字加密c语言程序_国外程序员整理的 C++ 资源大全
- arduino怎么和C语言程序通信,c – 如何将arduino库与标准C代码一起使用
- 隔年增长的题_行测技巧:资料分析隔年增长问题
- nodejs写的HTTP静态文件的引擎(轻量级)
- 搜索引擎字符串(亲测)
- 如何解决It's likely you're attempting to run Eclipse using the JRE instead of the JDK
- ncnn笔记:02)ncnn之JNI入门初窥
- Python-常用模块有哪些
- Python内置TCP服务器
- Adobe Dreamweaver CS6(或者CC 2018.2 SP)安装失败解决方案
- U3D中物体渐隐和闪烁的方法
- RK3588 调试 phy
- 用C语言打印简单图案(爱心\圆形\三角形等)
- vue+element-ui 动态加载本地图片
- 【Python爬虫】MongoDB爬虫实践:爬取虎扑论坛
- 【QTdesigner】课时37.按钮控件(QPushButton)【pyqt5+QTdesigner模式】
热门文章
- 永洪bi_永洪bi相关优惠价格-永洪bi的技术博客问答-阿里云
- linux自动挂载ipsan,RedhatLinux挂载IPSAN(iScsi协议)
- 安全防范趋势、信息安全管理、隐私保护
- android 接入腾讯信鸽
- 1995-2019,中国互联网产品的发展与变革
- 关于尼德霍夫VS塔勒布: 今年赚钱最多的,居然是个牧羊人(作者:老喻)
- ps使用仿制图章工具,图案图章工具
- python运维自动化老男孩_Day1 老男孩python自动化运维课程学习笔记
- 01web前端笔试试题
- 【AI视野·今日CV 计算机视觉论文速览 第200期】Tue, 18 May 2021