運(yùn)行java的class文件方法詳解
一、運(yùn)行class文件
執(zhí)行帶main方法的class文件,命令行為:
java <CLASS文件名>
注意:CLASS文件名不要帶文件后綴.class
例如:
java Test
如果執(zhí)行的class文件是帶包的,即在類(lèi)文件中使用了:package <包名>
那應(yīng)該在包的基路徑下執(zhí)行,命令行為:
java <包名>.CLASS文件名
例如:PackageTest.java中,其包名為:com.ee2ee.test,對(duì)應(yīng)的語(yǔ)句為:
package com.ee2ee.test;
PackageTest.java及編譯后的class文件PackageTest.class的存放目錄如下:
classes
|__com
|__ee2ee
|__test
|__PackageTest.java
|__PackageTest.class
要運(yùn)行PackageTest.class,應(yīng)在classes目錄下執(zhí)行:
java com.ee2ee.test.PackageTest
二、運(yùn)行jar文件中的class
原理和運(yùn)行class文件一樣,只需加上參數(shù)-cp <jar文件名>即可。
例如:執(zhí)行test.jar中的類(lèi)com.ee2ee.test.PackageTest,命令行如下:
java -cp test.jar com.ee2ee.test.PackageTest
三、顯示jdk版本信息
當(dāng)一臺(tái)機(jī)器上有多個(gè)jdk版本時(shí),需要知道當(dāng)前使用的是那個(gè)版本的jdk,使用參數(shù)-version即可知道其版本,命令行為:
java -version
四、增加虛擬機(jī)可以使用的最大內(nèi)存
java虛擬機(jī)可使用的最大內(nèi)存是有限制的,缺省值通常為64MB或128MB。如果一個(gè)應(yīng)用程序?yàn)榱颂岣咝阅芏褦?shù)據(jù)加載內(nèi)存中而占用較大的內(nèi)存,比如超過(guò)了默認(rèn)的最大值128MB,需要加大java虛擬機(jī)可使用的最大內(nèi)存,否則會(huì)出現(xiàn)Out of Memory(系統(tǒng)內(nèi)存不足)的異常。啟動(dòng)java時(shí),需要使用如下兩個(gè)參數(shù):
-Xms java虛擬機(jī)初始化時(shí)使用的內(nèi)存大小
-Xmx java虛擬機(jī)可以使用的最大內(nèi)存
以上兩個(gè)參數(shù)中設(shè)置的size,可以帶單位,例如:256m表示256MB
舉例說(shuō)明:
java -Xms128m -Xmx256m ...
表示java虛擬機(jī)初始化時(shí)使用的內(nèi)存為128MB,可使用的最大內(nèi)存為256MB。
對(duì)于tomcat,可以修改其腳本catalina.sh(unix平臺(tái))或catalina.bat(windows平臺(tái)),設(shè)置變量JAVA_OPTS即可,例如:
JAVA_OPTS='-Xms128m -Xmx256m'
在控制臺(tái)輸出信息中,有個(gè)-X(注意是大寫(xiě))的命令,這個(gè)正是查看JVM配置參數(shù)的命令。
其次,用java -X 命令查看JVM的配置說(shuō)明:
1、-Xmixed mixed mode execution (default)
混合模式執(zhí)行
2、-Xint interpreted mode execution only
解釋模式執(zhí)行
3、-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
設(shè)置zip/jar資源或者類(lèi)(.class文件)存放目錄路徑
3、-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
追加zip/jar資源或者類(lèi)(.class文件)存放目錄路徑
4、-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
預(yù)先加載zip/jar資源或者類(lèi)(.class文件)存放目錄路徑
5、-Xnoclassgc disable class garbage collection
關(guān)閉類(lèi)垃圾回收功能
6、-Xincgc enable incremental garbage collection
開(kāi)啟類(lèi)的垃圾回收功能
7、-Xloggc:<file> log GC status to a file with time stamps
記錄垃圾回日志到一個(gè)文件。
8、-Xbatch disable background compilation
關(guān)閉后臺(tái)編譯
9、-Xms<size> set initial Java heap size
設(shè)置JVM初始化堆內(nèi)存大小
10、-Xmx<size> set maximum Java heap size
設(shè)置JVM最大的堆內(nèi)存大小
11、-Xss<size> set java thread stack size
設(shè)置JVM棧內(nèi)存大小
12、-Xprof output cpu profiling data
輸入CPU概要表數(shù)據(jù)
13、-Xfuture enable strictest checks, anticipating future default
執(zhí)行嚴(yán)格的代碼檢查,預(yù)測(cè)可能出現(xiàn)的情況
14、-Xrs reduce use of OS signals by Java/VM (see documentation)
通過(guò)JVM還原操作系統(tǒng)信號(hào)
15、-Xcheck:jni perform. additional checks for JNI functions
對(duì)JNI函數(shù)執(zhí)行檢查
16、-Xshare:off do not attempt to use shared class data
盡可能不去使用共享類(lèi)的數(shù)據(jù)
17、-Xshare:auto use shared class data if possible (default)
盡可能的使用共享類(lèi)的數(shù)據(jù)
18、-Xshare:on require using shared class data, otherwise fail.
盡可能的使用共享類(lèi)的數(shù)據(jù),否則運(yùn)行失敗
怎么用這這些參數(shù)呢?其實(shí)所有的命令行都是這么一用,下面我就給出一個(gè)最簡(jiǎn)單的HelloWorl的例子來(lái)演示這個(gè)參數(shù)的用法,非常的簡(jiǎn)單。
// HelloWorld.java
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
編譯并運(yùn)行:
D:\j2sdk15\bin>javac HelloWorld.java
D:\j2sdk15\bin>java -Xms256M -Xmx512M HelloWorld
Hello World!
以上所述就是本文的全部?jī)?nèi)容了,希望大家對(duì)運(yùn)行java的class文件的方法有了新的認(rèn)識(shí)。
相關(guān)文章
java實(shí)現(xiàn)ATM機(jī)系統(tǒng)(2.0版)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)ATM機(jī)系統(tǒng)2.0版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
Java使用Semaphore對(duì)單接口進(jìn)行限流
本篇主要講如何使用Semaphore對(duì)單接口進(jìn)行限流,主要有三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
Java基礎(chǔ)學(xué)習(xí)之字符緩沖流的應(yīng)用
這篇文章主要為大家詳細(xì)介紹了Java基礎(chǔ)中的字符緩沖流的相關(guān)應(yīng)用,例如復(fù)制Java文件等,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一2022-09-09
java.lang.OutOfMemoryError: Metaspace異常解決的方法
這篇文章主要介紹了java.lang.OutOfMemoryError: Metaspace異常解決的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
MybatisPlus的LambdaQueryWrapper用法詳解
LambdaQueryWrapper<Tag>?是 MyBatis-Plus 框架中的一個(gè)功能強(qiáng)大的查詢(xún)構(gòu)造器,它用于構(gòu)建 SQL 查詢(xún)條件,具有一定的參考價(jià)值,感興趣的可以了解一下2024-10-10

