使用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 map 131
主類後面的就是要穿的引數。
二、執行jar檔案中的class
原理和執行class檔案一樣,只需加上引數-cp <jar檔名>即可。需要注意的一點是:jar包要放在剛才所說的classes資料夾下(你
終端現在執行命令時所在的目錄下),要不然提示找不到主類。
例如:執行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!
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow