運行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:\j2sdk15\bin>javac HelloWorld.java
D:\j2sdk15\bin>java -Xms256M -Xmx512M HelloWorld
Hello World!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM