• 运行java的class文件方法详解


    一、运行class文件

    执行带main方法的class文件,命令行为:
    java <CLASS文件名>
    注意:CLASS文件名不要带文件后缀.class

    例如:

    复制代码代码如下:

    java Test

    如果执行的class文件是带包的,即在类文件中使用了:package <包名>

    那应该在包的基路径下执行,命令行为:
    java <包名>.CLASS文件名
    例如:PackageTest.java中,其包名为:com.ee2ee.test,对应的语句为:
    package com.ee2ee.test;
    PackageTest.java及编译后的class文件PackageTest.class的存放目录如下:
    classes
      |__com
          |__ee2ee
               |__test
                    |__PackageTest.java
                    |__PackageTest.class
    要运行PackageTest.class,应在classes目录下执行:

    复制代码代码如下:

    java com.ee2ee.test.PackageTest

    二、运行jar文件中的class

            原理和运行class文件一样,只需加上参数-cp <jar文件名>即可。
            例如:执行test.jar中的类com.ee2ee.test.PackageTest,命令行如下:

    复制代码代码如下:

    java -cp test.jar com.ee2ee.test.PackageTest

    三、显示jdk版本信息

            当一台机器上有多个jdk版本时,需要知道当前使用的是那个版本的jdk,使用参数-version即可知道其版本,命令行为:

    复制代码代码如下:

    java -version

    四、增加虚拟机可以使用的最大内存

            java虚拟机可使用的最大内存是有限制的,缺省值通常为64MB或128MB。如果一个应用程序为了提高性能而把数据加载内存中而占用较大的内存,比如超过了默认的最大值128MB,需要加大java虚拟机可使用的最大内存,否则会出现Out of Memory(系统内存不足)的异常。启动java时,需要使用如下两个参数:
            -Xms java虚拟机初始化时使用的内存大小
            -Xmx java虚拟机可以使用的最大内存
            以上两个参数中设置的size,可以带单位,例如:256m表示256MB

    举例说明:

    复制代码代码如下:

    java -Xms128m -Xmx256m ...

    表示java虚拟机初始化时使用的内存为128MB,可使用的最大内存为256MB。

    对于tomcat,可以修改其脚本catalina.sh(unix平台)或catalina.bat(windows平台),设置变量JAVA_OPTS即可,例如:

    复制代码代码如下:

    JAVA_OPTS='-Xms128m -Xmx256m'

    在控制台输出信息中,有个-X(注意是大写)的命令,这个正是查看JVM配置参数的命令。

    其次,用java -X 命令查看JVM的配置说明:
    1、-Xmixed mixed mode execution (default)
     混合模式执行
     
    2、-Xint interpreted mode execution only
     解释模式执行
     
    3、-Xbootclasspath:<directories and zip/jar files separated by ;>
          set search path for bootstrap classes and resources
     设置zip/jar资源或者类(.class文件)存放目录路径
     
    3、-Xbootclasspath/a:<directories and zip/jar files separated by ;>
          append to end of bootstrap class path
     追加zip/jar资源或者类(.class文件)存放目录路径
     
    4、-Xbootclasspath/p:<directories and zip/jar files separated by ;>
          prepend in front of bootstrap class path
     预先加载zip/jar资源或者类(.class文件)存放目录路径
     
    5、-Xnoclassgc disable class garbage collection
     关闭类垃圾回收功能
     
    6、-Xincgc enable incremental garbage collection
     开启类的垃圾回收功能
     
    7、-Xloggc:<file> log GC status to a file with time stamps
     记录垃圾回日志到一个文件。
     
    8、-Xbatch disable background compilation
     关闭后台编译
     
    9、-Xms<size> set initial Java heap size
     设置JVM初始化堆内存大小
     
    10、-Xmx<size> set maximum Java heap size
     设置JVM最大的堆内存大小
     
    11、-Xss<size> set java thread stack size
     设置JVM栈内存大小
     
    12、-Xprof output cpu profiling data
     输入CPU概要表数据
     
    13、-Xfuture enable strictest checks, anticipating future default
     执行严格的代码检查,预测可能出现的情况
     
    14、-Xrs reduce use of OS signals by Java/VM (see documentation)
     通过JVM还原操作系统信号
     
    15、-Xcheck:jni perform. additional checks for JNI functions
     对JNI函数执行检查
     
    16、-Xshare:off do not attempt to use shared class data
     尽可能不去使用共享类的数据
     
    17、-Xshare:auto use shared class data if possible (default)
     尽可能的使用共享类的数据
     
    18、-Xshare:on require using shared class data, otherwise fail.
     尽可能的使用共享类的数据,否则运行失败

    怎么用这这些参数呢?其实所有的命令行都是这么一用,下面我就给出一个最简单的HelloWorl的例子来演示这个参数的用法,非常的简单。

    复制代码代码如下:

    // HelloWorld.java
    public class HelloWorld {
        public static void main(String[] args){
            System.out.println("Hello World!");
        }
    }

    编译并运行:
    D:j2sdk15in>javac HelloWorld.java
    D:j2sdk15in>java -Xms256M -Xmx512M HelloWorld
    Hello World!

  • 相关阅读:
    20201107
    20201024
    20201020
    20200331
    20200330
    20200320
    20200319
    20200310
    20200221
    20190926
  • 原文地址:https://www.cnblogs.com/hyl8218/p/5161824.html
Copyright © 2020-2023  润新知