Mac OSX Leopard 中 终端java乱码的解决方法

2024-02-08 02:58

本文主要是介绍Mac OSX Leopard 中 终端java乱码的解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Mac OSX Leopard 中 终端java乱码的解决方法

在Mac OSX Leopard中如果在终端程序中输入Java可以看到如下输出:
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available (implies -server, only for x86_64)
    -client      to select the "client" VM
    -server      to select the "server" VM
    -jvm      is a synonym for the "client" VM  [deprecated]
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is client.
                 
    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                    see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument

但是javac和jar命令却无法得到正确的输出,例如javac命令得到的输出为:
?÷???javac <ѡ??> <Դ?ļ?>
???У????ܵ?ѡ???????
  -g                         ???????е?????Ϣ
  -g:none                    ???????κε?????Ϣ
  -g:{lines,vars,source}     ֻ????ijЩ??????Ϣ
  -nowarn                    ???????κξ???
  -verbose                   ????йر?????????ִ?еIJ???????Ϣ
  -deprecation               ???ʹ???ѹ?ʱ?? API ??Դλ??
  -classpath <·??>            ָ???????û????ļ???λ??
  -cp <·??>                   ָ???????û????ļ???λ??
  -sourcepath <·??>           ָ??????????Դ?ļ???λ??
  -bootclasspath <·??>        ???????????ļ???λ??
  -extdirs <Ŀ¼>              ???ǰ?װ????չĿ¼??λ??
  -endorseddirs <Ŀ¼>         ????ǩ???ı?׼·????λ??
  -d <Ŀ¼>                    ָ????????ɵ????ļ???λ??
  -encoding <????>             ָ??Դ?ļ?ʹ?õ??ַ?????
  -source <?汾>               ?ṩ??ָ???汾??Դ??????
  -target <?汾>               ?????ض? VM ?汾?????ļ?
  -version                   ?汾??Ϣ
  -help                      ?????׼ѡ?????Ҫ
  -X                         ????DZ?׼ѡ?????Ҫ
  -J<??־>                     ֱ?ӽ? <??־> ???ݸ?????ʱϵͳ

主要的原因是终端程序中使用的编码格式与javac或者jar帮助文件的编码格式不同.
但是在Mac OSX Leopard中为了照顾大多数的程序,在终端中还是将编码设置为了UTF-8,可以通过set命令查看,例如:
Apple_PubSub_Socket_Render=/tmp/launch-bVZUGq/Render
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="2" [2]="17" [3]="1" [4]="release" [5]="i386-apple-darwin9.0")
BASH_VERSION='3.2.17(1)-release'
COLUMNS=117
COMMAND_MODE=unix2003
DIRSTACK=()
DISPLAY=/tmp/launch-IZXRkN/:0
EUID=501
GROUPS=()
HISTFILE=/Users/mazhao/.bash_history
HISTFILESIZE=500
HISTSIZE=500
HOME=/Users/mazhao
HOSTNAME=mazhaodeimac.local
HOSTTYPE=i386
IFS=$' /t/n'
LANG=zh_CN.UTF-8
LINES=39
LOGNAME=mazhao
MACHTYPE=i386-apple-darwin9.0
MAILCHECK=60
MANPATH=/usr/share/man:/usr/local/share/man:/usr/X11/man
OPTERR=1
OPTIND=1
OSTYPE=darwin9.0
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
PIPESTATUS=([0]="2" [1]="0")
PPID=641
PS1='/h:/W /u/$ '
PS2='> '
PS4='+ '
PWD=/Users/mazhao
SECURITYSESSIONID=ab40b0
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
SSH_AUTH_SOCK=/tmp/launch-InisMD/Listeners
TERM=xterm-color
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=240
TMPDIR=/var/folders/uA/uA4dEjP9HBWOk+6ULKESZk+++TI/-Tmp-/
UID=501
USER=mazhao
_=
__CF_USER_TEXT_ENCODING=0x1F5:25:52

要想让javac或者jar命令的帮助输出没有乱码,必须使用GB18030的编码格式,刚才也说过为了照顾大多数程序的需求,不能修改
这里的编码格式,那么则么办呢?
我们使用一个功能更加强大的终端程序,就是iTerm.
在iTerm中在info > session > Encoding 中将编码设置为GB18030即可,截图为:

在Mac中可以使用Control + Command + 3 / 4 来截图,截得的图片放在了桌面.

这篇关于Mac OSX Leopard 中 终端java乱码的解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/689707

相关文章

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

Spring Boot读取配置文件的五种方式小结

《SpringBoot读取配置文件的五种方式小结》SpringBoot提供了灵活多样的方式来读取配置文件,这篇文章为大家介绍了5种常见的读取方式,文中的示例代码简洁易懂,大家可以根据自己的需要进... 目录1. 配置文件位置与加载顺序2. 读取配置文件的方式汇总方式一:使用 @Value 注解读取配置方式二

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Java中的@SneakyThrows注解用法详解

《Java中的@SneakyThrows注解用法详解》:本文主要介绍Java中的@SneakyThrows注解用法的相关资料,Lombok的@SneakyThrows注解简化了Java方法中的异常... 目录前言一、@SneakyThrows 简介1.1 什么是 Lombok?二、@SneakyThrows

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.