运行java的class文件方法详解
一、运行class文件
执行带main方法的class文件,命令行为:
java<CLASS文件名>
注意:CLASS文件名不要带文件后缀.class
例如:
javaTest
如果执行的class文件是带包的,即在类文件中使用了:package<包名>
那应该在包的基路径下执行,命令行为:
java<包名>.CLASS文件名
例如:PackageTest.java中,其包名为:com.ee2ee.test,对应的语句为:
packagecom.ee2ee.test;
PackageTest.java及编译后的class文件PackageTest.class的存放目录如下:
classes
|__com
|__ee2ee
|__test
|__PackageTest.java
|__PackageTest.class
要运行PackageTest.class,应在classes目录下执行:
javacom.ee2ee.test.PackageTest
二、运行jar文件中的class
原理和运行class文件一样,只需加上参数-cp<jar文件名>即可。
例如:执行test.jar中的类com.ee2ee.test.PackageTest,命令行如下:
java-cptest.jarcom.ee2ee.test.PackageTest
三、显示jdk版本信息
当一台机器上有多个jdk版本时,需要知道当前使用的是那个版本的jdk,使用参数-version即可知道其版本,命令行为:
java-version
四、增加虚拟机可以使用的最大内存
java虚拟机可使用的最大内存是有限制的,缺省值通常为64MB或128MB。如果一个应用程序为了提高性能而把数据加载内存中而占用较大的内存,比如超过了默认的最大值128MB,需要加大java虚拟机可使用的最大内存,否则会出现OutofMemory(系统内存不足)的异常。启动java时,需要使用如下两个参数:
-Xmsjava虚拟机初始化时使用的内存大小
-Xmxjava虚拟机可以使用的最大内存
以上两个参数中设置的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、-Xmixedmixedmodeexecution(default)
混合模式执行
2、-Xintinterpretedmodeexecutiononly
解释模式执行
3、-Xbootclasspath:<directoriesandzip/jarfilesseparatedby;>
setsearchpathforbootstrapclassesandresources
设置zip/jar资源或者类(.class文件)存放目录路径
3、-Xbootclasspath/a:<directoriesandzip/jarfilesseparatedby;>
appendtoendofbootstrapclasspath
追加zip/jar资源或者类(.class文件)存放目录路径
4、-Xbootclasspath/p:<directoriesandzip/jarfilesseparatedby;>
prependinfrontofbootstrapclasspath
预先加载zip/jar资源或者类(.class文件)存放目录路径
5、-Xnoclassgcdisableclassgarbagecollection
关闭类垃圾回收功能
6、-Xincgcenableincrementalgarbagecollection
开启类的垃圾回收功能
7、-Xloggc:<file>logGCstatustoafilewithtimestamps
记录垃圾回日志到一个文件。
8、-Xbatchdisablebackgroundcompilation
关闭后台编译
9、-Xms<size>setinitialJavaheapsize
设置JVM初始化堆内存大小
10、-Xmx<size>setmaximumJavaheapsize
设置JVM最大的堆内存大小
11、-Xss<size>setjavathreadstacksize
设置JVM栈内存大小
12、-Xprofoutputcpuprofilingdata
输入CPU概要表数据
13、-Xfutureenablestrictestchecks,anticipatingfuturedefault
执行严格的代码检查,预测可能出现的情况
14、-XrsreduceuseofOSsignalsbyJava/VM(seedocumentation)
通过JVM还原操作系统信号
15、-Xcheck:jniperform.additionalchecksforJNIfunctions
对JNI函数执行检查
16、-Xshare:offdonotattempttousesharedclassdata
尽可能不去使用共享类的数据
17、-Xshare:autousesharedclassdataifpossible(default)
尽可能的使用共享类的数据
18、-Xshare:onrequireusingsharedclassdata,otherwisefail.
尽可能的使用共享类的数据,否则运行失败
怎么用这这些参数呢?其实所有的命令行都是这么一用,下面我就给出一个最简单的HelloWorl的例子来演示这个参数的用法,非常的简单。
//HelloWorld.java publicclassHelloWorld{ publicstaticvoidmain(String[]args){ System.out.println("HelloWorld!"); } }
编译并运行:
D:\j2sdk15\bin>javacHelloWorld.java
D:\j2sdk15\bin>java-Xms256M-Xmx512MHelloWorld
HelloWorld!
以上所述就是本文的全部内容了,希望大家对运行java的class文件的方法有了新的认识。