ITPub博客

首页 > 应用开发 > Java > JDK支持的字符集和系统属性值

JDK支持的字符集和系统属性值

原创 Java 作者:zhengkojng 时间:2020-08-28 10:18:00 0 删除 编辑

  Java开发中经常用到系统属性值,相关字符集。经常查询,确实很不爽,还要写个代码去看看。贴出来,以后就方便使用了。

  获取当前JDK支持的字符集

  public static void getJDKEncoding(){

  SortedMap<String,Charset>map=Charset.availableCharsets();

  for(String alias:map.keySet()){

  System.out.println("别名:"+alias+"t字符集对象:"+map.get(alias));

  }

  }

  别名:alias

  字符集对象:Charset

  Big5 Big5

  GBK GBK

  UTF-8 UTF-8

  ISO-8859-1

  ......ISO-8859-1

  .....

  一共支持167种之多。

  获取当前系统信息

  /**

  *获取当前系统环境信息

  */

  public static void getSystemProperties(){

  Properties p=System.getProperties();

  for(Object key:p.keySet()){

  System.out.println("名称:"+key+"t值:"+p.get(key));

  }

  }

  Key:属性名Value:属性值说明

  java.runtime.name Java(TM)SE Runtime Environment

  sun.boot.library.path C:Program FilesJavajdk1.7.0_25jrebin

  java.vm.version 23.25-b01 Java虚拟机版本

  java.vendor.url http://java.oracle.com/提供商网址

  path.separator;系统路径分割符Linux是":";曾经栽过。

  java.vm.name Java HotSpot(TM)Client VM Java虚拟机名称;还有其他Java虚拟机Sun Classic/ExactVM(世界上第一款商用Java虚拟机),IBMJ9等

  sun.jnu.encoding GBK文件名编码

  java.runtime.version 1.7.0_25-b17

  java.library.path系统环境变量中的值

  file.separator

  文件目录分割符(Windows下)

  Linux下(/)

  file.encoding UTF-8文件内容编码

  sun.boot.class.path C:Program FilesJavajdk1.7.0_25jrelibresources.jar;C:Program FilesJavajdk1.7.0_25jrelibrt.jar;C:Program FilesJavajdk1.7.0_25jrelibsunrsasign.jar;C:Program FilesJavajdk1.7.0_25jrelibjsse.jar;C:Program FilesJavajdk1.7.0_25jrelibjce.jar;C:Program FilesJavajdk1.7.0_25jrelibcharsets.jar;C:Program FilesJavajdk1.7.0_25jrelibjfr.jar;C:Program FilesJavajdk1.7.0_25jreclasses

  sun.java.launcher SUN_STANDARD

  java.vm.specification.name Java Virtual Machine Specification

  java.vm.specification.vendor Oracle Corporation提供商

  java.specification.name Java Platform API Specification规格说明书

  sun.management.compiler HotSpot Client Compiler

  java.class.version 51.0重要,major.minor组成;Class文件版本号

  line.separatorr

  Windows(r)

  Liunx(n)

  依靠上面的代码很难显示出来,通过调试查看结果:QQ拼音截图未命名.png

  java.io.tmpdir C:UsersZHANGX~1AppDataLocalTemp

  临时目录

  可以设置:

  java-Djava.io.tmpdir=/path/to/tmpdir

  java.awt.printerjob sun.awt.windows.WPrinterJob

  sun.arch.data.model 32 JDK,JRE的位数(操作系统无关)

  sun.cpu.endian little小端模式

  sun.desktop windows

  下面是一个用户级信息:

  Key:属性名Value:属性值说明

  user.country CN国家

  user.dir E:workspace__jsmartAndvance工作目录

  os.arch x86 JRE的系统属性(与操作系统位数无关)

  os.name Windows 7操作系统

  os.version 6.1操作系统内部版本号

  user.home C:UsersZhang用户目录

  user.timezone

  用户所在的时区

  user.name Zhang当前登录系统的用户名

  user.language zh语言,(和国家信息对应,可在浏览器Internet选项的语言中查找)

  关于“os.arch”该值与操作系统的位数无关,取决于机器安装的JRE位数,参见:

  http://www.oracle.com/technetwork/java/javase/downloads/jre-6u25-download-346243.html可以看出JRE是有位数区别的。

  参见一篇文章:

  Java's"os.arch"System Property is the Bitness of the JRE,NOT the Operating System

  http://mark.koli.ch/2009/10/javas-osarch-system-property-is-the-bitness-of-the-jre-not-the-operating-system.html可以说明情况。

  import com.sun.servicetag.SystemEnvironment;

  public class OSArchLies{

  public static void main(String[]args){

  //Will say"x86"even on a 64-bit machine

  //using a 32-bit Java runtime

  SystemEnvironment env=

  SystemEnvironment.getSystemEnvironment();

  final String envArch=env.getOsArchitecture();

  //The os.arch property will also say"x86"on a

  //64-bit machine using a 32-bit runtime

  final String propArch=System.getProperty("os.arch");

  System.out.println("getOsArchitecture()says=>"+envArch);

  System.out.println("getProperty()says=>"+propArch);

  }

  }


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69934487/viewspace-2715405/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 云中绽放私有云
下一篇: Floating Window 详解
请登录后发表评论 登录
全部评论

注册时间:2020-08-24

  • 博文量
    10
  • 访问量
    36399