获取JVM默认编码以及获取其它JVM属性的方法
package com.liuc.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Properties;
public class EncodingTest {
public static void main(String[] args) {
System.out.println(getJVMEnconding());
getJVMParams();
}
// 获得jvm的默认编码
public static String getJVMEnconding() {
return System.getProperty("file.encoding");
}
//获取JVM属性
public static void getJVMParams() {
try {
Properties properties=System.getProperties();
PrintWriter out=null;
out = new PrintWriter(new File("a.txt"));
properties.list(out);
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
JVM属性输出到a.txt文件中,内容如下:
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=D:\Program\JDK1.6\jre\bin
java.vm.version=11.2-b01
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=F:\work\test
java.runtime.version=1.6.0_12-b04
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=D:\Program\JDK1.6\jre\lib\endorsed
os.arch=x86
java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
user.variant=
os.name=Windows Vista
sun.jnu.encoding=GBK
java.library.path=D:\Program\JDK1.6\bin;.;C:\Windows\Su...
java.specification.name=Java Platform API Specification
java.class.version=50.0
sun.management.compiler=HotSpot Client Compiler
os.version=6.1
user.home=C:\Users\Administrator
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=GBK
java.specification.version=1.6
user.name=Administrator
java.class.path=F:\work\test\build\classes;D:\tomcat\...
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=D:\Program\JDK1.6\jre
java.specification.vendor=Sun Microsystems Inc.
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode, sharing
java.version=1.6.0_12
java.ext.dirs=D:\Program\JDK1.6\jre\lib\ext;C:\Wind...
sun.boot.class.path=D:\Program\JDK1.6\jre\lib\resources.j...
java.vendor=Sun Microsystems Inc.
file.separator=\
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+m...
对应表示
键 相关值的描述
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录
分享到:
相关推荐
例如,项目源代码、数据库、文件系统以及网络通信等环节均采用UTF-8编码,但在某些环境下(如Windows),JVM的默认编码可能是GBK,这就会造成数据在处理过程中出现乱码。 解决方法: 1. **Linux环境**: 在Linux...
IBM Java虚拟机(JVM)为开发者提供了丰富的配置选项来优化应用程序性能、诊断问题以及调整各种资源使用情况。本文将详细解释IBM JVM中的关键参数及其功能,帮助您更好地管理和调优Java应用。 #### 基础参数 1. **-...
这是因为Java虚拟机(JVM)会根据本地系统的编码方式来确定String类型的默认编码方式。当我们创建一个String对象时,JVM会根据本地系统的编码方式来将字符串编码为字节数组。例如,如果本地系统的编码方式是GBK,则...
标题中的“关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论”涉及了两个关键的IT概念:Tomcat服务器的字符编码问题和Java虚拟机(JVM)内存管理的问题。让我们逐一深入探讨这两个主题。 首先,我们来...
在Java虚拟机(JVM)中,字符转码是一个关键的概念,它涉及到字符串的内部表示以及与不同编码格式之间的转换。让我们深入探讨一下这个主题。 首先,了解字符集的基础知识至关重要。字符集,如ASCII、ISO-8859-1、GB...
以下是对JVM部分关键配置参数的详细解析,这些参数能够帮助我们优化应用程序的执行效率,管理内存,以及进行性能调优。 #### 执行模式配置 1. **-Xmixed**: 混合模式执行(默认)。此参数指示JVM使用混合模式执行...
`FileReader/FileWriter`会使用JVM的默认编码,如果需要其他编码格式,应使用`InputStreamReader/OutputStreamWriter`。`PrintStream`会自动使用JVM的默认编码。 `.properties`文件以ISO8859-1编码读取,所以直接...
要将Eclipse的默认编码从GBK改为UTF-8,你需要按照以下步骤操作: 1. **修改eclipse.ini配置文件**: - 找到你的Eclipse安装目录,通常在`eclipse`文件夹内有一个名为`eclipse.ini`的配置文件。 - 使用文本编辑器...
1. **替换或扩展核心类库**:如果你想覆盖或增强Java的内置功能,你可以指定一个包含修改后类的路径,这样JVM在启动时会优先使用这些类,而不是系统默认的。 2. **测试和调试**:在开发JDK或者对Java核心类库进行...
在编译过程中,如果没有指定源程序文件的编码格式,javac.exe 将获得操作系统默认的编码格式,然后将源程序文件从 file.encoding 编码格式转化为 Java 内部默认的 UNICODE 格式,并将其编译成.class 文件。...
非堆内存(Non-Heap Memory)主要包括方法区(Method Area)、JVM内部的数据结构以及JIT编译后的代码缓存等。方法区存储了类结构、字段和方法数据,以及方法和构造函数的代码。在Java 8之后,永久代被元空间...
如果JSP文件中未指定编码格式,那么将使用JVM默认的字符编码(即Web容器所在操作系统的默认`file.encoding`)进行转换。 2. **从Unicode编码到.class文件**:编译后的Java代码以Unicode格式存储在内存中,接着被...
JVM的默认编码方式取决于系统的“本地语言环境”,这可以通过`File.encoding`属性来查看。在Linux环境下,可以通过LANG和LC_ALL环境变量来调整locale和编码设置。 当处理数据库中的中文数据时,Java需要确保与...
- 在Windows系统中,可以修改系统的区域和语言设置,确保文件路径的默认编码与Java期望的编码一致。 6. 第三方库支持: - 使用第三方库,如Apache Commons IO或Google的Guava,它们提供了一些工具类来帮助处理...
在处理汉字时,推荐使用`FileReader`和`FileWriter`,它们会按照JVM的默认编码读写文件。如果文件编码不同,可以使用`InputStreamReader`和`OutputStreamWriter`配合指定的编码。 4. **特定格式文件的处理**: - `...
- Reader和Writer类只能使用默认编码进行转换,这意味着如果文件的编码与系统默认编码不一致,可能会出现乱码问题。 - 例如,在中文版Windows XP系统上使用GBK编码的文件,若尝试使用默认的GBK编码读取一个UTF-8...
开发者可以通过`System.getProperties()`方法获取所有系统属性,以便了解当前JVM的配置。 Java源代码的编码通常与操作系统环境有关,`javac`编译器会根据操作系统的区域设置自动确定源文件的编码。不过,也可以通过...
在Java代码中,可以通过System.getProperty("file.encoding")方法获取当前JVM使用的默认字符编码。这种编码方式对文件I/O操作有着直接影响。如果需要对特定的文件进行特定编码格式的读写,Java提供了字符流(如...