`

【翻译】java verbose options

阅读更多
原文链接: http://extreme-java.blogspot.com/2011/01/java-verbose-options-for-running.html


There are basically three sub parameters with the javac verbose parameter:
verbose参数有三个基本的子参数:
-verbose:class
-verbose:gc
-verbose:jni

To give you an idea of the number of classes loaded when you fire the java commond, here is the most simple program.

package example.java;
 
public class Test{
   public static void main(String args[]) {
    System.out.println("Hello World");
   }
}


I will run it using the -verbose:class option to see how many classes have been loaded into the memory. If you are running the program from command line then you can use the command:
java -verbose:class Test

The output shown to you will be:

[Loaded java.lang.Object from shared objects file]
[Loaded java.io.Serializable from shared objects file]
[Loaded java.lang.Comparable from shared objects file]
[Loaded java.lang.CharSequence from shared objects file]
[Loaded java.lang.String from shared objects file]
[Loaded java.lang.reflect.GenericDeclaration from shared objects file]
[Loaded java.lang.reflect.Type from shared objects file]
.............
.............
[Loaded java.security.ProtectionDomain$2 from C:\Program Files (x86)\Java\jre6\lib\rt.jar]
[Loaded java.security.ProtectionDomain$Key from C:\Program Files (x86)\Java\jre6\lib\rt.jar]
[Loaded java.security.Principal from shared objects file]
[Loaded example.java.Test from file:/C:/Sandeep/Projects/Workspace/test/bin/]
Hello World
[Loaded java.lang.Shutdown from shared objects file]
[Loaded java.lang.Shutdown$Lock from shared objects file]

Thus we can see that such a huge number of classes are loaded for a simple Hello World program. You can imagine the number of classes loaded when you have very complex system to automate with web applications also comming into the picture.


The story of verbose doesn't end here. You can also see when a garbage collection runs. This option can be handy when performing garbage collection is serious to your program. The modified code will be:
当垃圾回收对你的程序很重要时,gc子参数就显得很方便了:

package example.java;
 
public class Test{
   public static void main(String args[]) {
    System.out.println("Hello World");
    System.gc();
   }
}


If you run the above program as java -verbose:gc Test, the you will see the following line in the output:


[Full GC 281K->123K(15872K), 0.0148661 secs]

This can suggest you when the garbage collector runs.

On the similar lines, if you run the above Test program with -verbose:jni option then the following output will be shown:


[Dynamic-linking native method java.lang.Object.registerNatives ... JNI]
[Registering JNI native method java.lang.Object.hashCode]
..................
..................
[Dynamic-linking native method java.lang.Compiler.registerNatives ... JNI]
[Registering JNI native method java.lang.Compiler.compileClass]
[Registering JNI native method java.lang.Compiler.compileClasses]
[Registering JNI native method java.lang.Compiler.command]
[Registering JNI native method java.lang.Compiler.enable]
[Registering JNI native method java.lang.Compiler.disable]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.find ...
[Dynamic-linking native method java.io.FileOutputStream.writeBytes ... JNI]
Hello World
[Dynamic-linking native method java.lang.Runtime.gc ... JNI]
[Dynamic-linking native method java.lang.ref.Finalizer.invokeFinalizeMethod ... JNI]

分享到:
评论

相关推荐

    JAVA-OPTS参数设置.docx

    8. -verbose:gc:实时垃圾收集信息。 9. -Xloggc:gc.log:指定垃圾收集日志文件。 10. -XX:+UseParNewGC:缩短 minor 收集的时间。 11. -XX:+UseConcMarkSweepGC:缩短 major 收集的时间。 PermGen space 是 ...

    Java入门笔记8_JavaTools

    `Options`可以设置类路径`-classpath`,指定输出目录`-d`,生成调试信息`-g`,关闭警告`-nowarn`,代码优化`-O`,以及显示详细信息`-verbose`等。 3. **Applet Viewer (appletViewer)**:这个工具专门用于预览和...

    JNI攻略之十一――启动虚拟机调用java类

    - 配置选项(`options`),如禁用Java编译器(`-Djava.compiler=NONE`),指定类路径(`-Djava.class.path=.`),以及开启JNI调试信息(`-verbose:jni`)。 - 创建`JavaVMInitArgs`结构体并填充必要信息。 - **创建Java...

    Java命令参数说明大全

    9. **-agentlib:[=<options>], -agentpath:[=<options>] 和 -javaagent:[=<options>]** 用于加载JVM代理,可以是本地库或Java代理库,用于调试和监控JVM行为。 #### 扩展参数说明 1. **-Xmixed** 混合模式,...

    java-JDK常用命令详解

    语法:rmic [options] package-qualified-class-name(s) 选项: * -classpath [路径]:指定 rmic 用于查询类的路径。 * -d [目录]:指定类层次的根目录。 * -depend:使编译器考虑重新编译从其它类引用的类。 * -g...

    Java的基础入门教程

    命令格式为`java [options] classname <args>`。其中,`classname`是主类的名字,该类必须包含一个`public static void main(String[] args)`方法作为程序入口点。 - **-cs或-checksource选项**:检查源代码版本是否...

    JNI攻略之十――操作Java虚拟机

    options[2].optionString = "-verbose:jni"; vm_args.version = JNI_VERSION_1_2; // 确保版本号正确 vm_args.nOptions = 3; vm_args.options = options; vm_args.ignoreUnrecognized = JNI_TRUE; res = JNI...

    java troubleshooting hp

    JAVA_TOOL_OPTIONS环境变量允许用户在启动Java应用时指定额外的选项,如设置JVM参数等。 ##### 1.12 jconsole(仅1.5版本) jconsole 是一个Java监视和管理系统(JMX)工具,可在Java 1.5版本中使用,用于远程监视和...

    基于Java的实例源码-命令行解析器 JOpt Simple.zip

    **Java命令行解析器JOpt Simple详解** 在Java开发中,命令行参数解析是一个常见的需求,尤其是在编写控制台应用程序或工具时。`JOpt Simple`是一个轻量级、易于使用的库,专门用于解析命令行选项和参数。这个库提供...

    corejava的学习笔记

    - `-javaagent:[=<options>]`:加载 Java 语言代理。 - `-splash:<imagepath>`:显示带有指定图像的启动画面。 #### Java 程序设计基础 - **程序入口**:`main` 函数必须是 `public static void main(String[] ...

    java命令详解 高手进阶

    - `-J<options>`:传递给Java虚拟机的选项。 - `-host`:指定远程主机地址。 - `-port`:指定远程端口。 - `-passwordfile`:指定密码文件。 **示例**: ```bash jconsole -host remotehost -port 1099 -J-Xmx...

    java命令大全

    11. **-agentlib:[=<options>], -agentpath:[=<options>], -javaagent:[=<options>]** 这些参数用于加载JVM代理,可以是本地库或JAR文件,用于调试或监控JVM的运行情况。 #### 扩展参数说明 1. **-Xmixed, -Xint...

    java命令行详解

    javac -verbose MyClass.java ``` ##### 12. `-deprecation` - **作用**:显示已废弃API的使用情况。 - **示例**: ```shell javac -deprecation MyClass.java ``` ##### 13. `-encoding <charset>` - **作用...

    基于Java的命令行解析器 JOpt Simple.zip

    例如,你可以定义一个`-v`(verbose)选项,一个`--input`选项来接收输入文件路径,甚至可以定义多个命令,如`run`和`build`,每个命令又有自己的子选项。 以下是一些核心功能和用法: 1. **定义选项**:你可以创建...

    Java的命令行处理类库 JArgs源码示例

    Java的命令行处理在开发工具或脚本应用中扮演着重要的角色,而JArgs是一个用于解析Java命令行参数的轻量级库。它提供了一种简单、直观的方式来定义和处理命令行选项,使得代码更加清晰和易于维护。下面将详细探讨...

    JVM学习笔记(一)

    - `java [options] -jar file.jar [arguments]`:需要指定main所在的jar,并且jar中需要使用清单文件声明main方法。 - Java运行时依次从以下类路径查找Class: - `bootstrapclasspath`:Java平台核心类,由JVM的...

    android NDK 自动生成jni头文件

    其中,[options] 是可选参数,<classes> 是要转换的 Java 类文件的名称。 javah 命令提供了多种选项,包括: * -help:显示帮助信息 * -classpath <path>:指定类文件的搜索路径 * -bootclasspath <path>:指定...

    Java常用命令汇总

    java命令的基本语法为:java [-options] class [args...] 或 java [-options] -jar jarfile [args...] 其中,options包括: * -d32:使用 32 位数据模型 (如果可用) * -d64:使用 64 位数据模型 (如果可用) * -...

    commons-cli-1.3.1-bin

    例如,`Option.builder("v").desc("显示详细信息").build()` 会创建一个标识为 `-v` 或 `--verbose` 的选项,用于显示详细信息。 2. **Options 类**:用于收集多个 Option 对象,构建出完整的命令行选项集。这样...

Global site tag (gtag.js) - Google Analytics