Java命令行的基本編譯運行


1、編譯

編寫MyProgram.java文件,內容如下:

public class MyProgram {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}

注意:這里沒有聲明包名,只做了一個最簡單的輸出helloworld。

用命令行打開java文件所在的目錄,然后運行如下命令行,生成class文件:

javac MyProgram.java

此時,會在當前目錄下生成java文件對應的class文件。

2、運行

在命令行上輸入如下命令:

java MyProgram

注意:這里沒有指定后綴是什么文件,java程序默認會找到class文件進行運行。其實這里的名稱代表了一個類名,通常情況下類型和文件名是保持一致的,而這里由於省略了包名,當加上包名時,運行的方法應該為:包名.類名。

注意2:如果加了包名,那么一定不能進入到這個包里面運行,要在包名外面運行,比如class/com/jsoft/test/App.class,運行時需要加上包名,並且要在class這層目錄下運行,如:class>java com.jsoft.test.App

結果如下:

3、命令行解釋及文件說明

java文件:這個就是源文件。

javac命令:javac是java語言編程編譯器,負責把java源文件編譯成字節碼class文件。參考:http://baike.baidu.com/item/javac

class文件:java字節碼文件,這個是跨平台的關鍵,一份java代碼對應一份class文件,然后通過java虛擬機JVM進行對應的平台轉換(JIT方式)成不同平台的機器碼,從而實現跨平台。那么一般一個java的類會生成對應的class的文件,有多少類就有多少的字節碼文件。

java:Java 應用程序啟動器,同時也是java的虛擬機JVM,用於運行java的字節碼文件,翻譯成對應的機器碼。(控制台)

javaw:(GUI程序)

javaws:(用於web應用程序)

其它:

jdb:Java 應用程序調試程序 

javah:C 頭文件和 stub 文件生成器

javap:類文件解析器

javadoc:API 文檔生成器

jar:JAR 歸檔工具 Java 擴展框架

4、參考資料

java字節碼的深入理解:http://www.importnew.com/13107.html

5、測試工程

https://github.com/easonjim/5_java_example/tree/master/commandlinetest

 

題外:

其實上面測試只是簡單的命令行運行,像比較復雜的有多個類,以及多個jar包的互相依賴的,可以參考這里的文章:http://www.cnblogs.com/yjmyzz/p/executable-jar.html。這篇文章所說的不是jar包的打法,而是如何使用java命令行去運行。

以下為java命令行的幫助說明:java -h

用法: java [-options] class [args...]
           (執行類)
   或  java [-options] -jar jarfile [args...]
           (執行 jar 文件)
其中選項包括:
    -d32          使用 32 位數據模型 (如果可用)
    -d64          使用 64 位數據模型 (如果可用)
    -server       選擇 "server" VM
                  默認 VM 是 server.

    -cp <目錄和 zip/jar 文件的類搜索路徑>
    -classpath <目錄和 zip/jar 文件的類搜索路徑>; 分隔的目錄, JAR 檔案
                  和 ZIP 檔案列表, 用於搜索類文件。
    -D<名稱>=<值>
                  設置系統屬性
    -verbose:[class|gc|jni]
                  啟用詳細輸出
    -version      輸出產品版本並退出
    -version:<值>
                  需要指定的版本才能運行
    -showversion  輸出產品版本並繼續
    -jre-restrict-search | -no-jre-restrict-search
                  在版本搜索中包括/排除用戶專用 JRE
    -? -help      輸出此幫助消息
    -X            輸出非標准選項的幫助
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  按指定的粒度啟用斷言
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  禁用具有指定粒度的斷言
    -esa | -enablesystemassertions
                  啟用系統斷言
    -dsa | -disablesystemassertions
                  禁用系統斷言
    -agentlib:<libname>[=<選項>]
                  加載本機代理庫 <libname>, 例如 -agentlib:hprof
                  另請參閱 -agentlib:jdwp=help 和 -agentlib:hprof=help
    -agentpath:<pathname>[=<選項>]
                  按完整路徑名加載本機代理庫
    -javaagent:<jarpath>[=<選項>]
                  加載 Java 編程語言代理, 請參閱 java.lang.instrument
    -splash:<imagepath>
                  使用指定的圖像顯示啟動屏幕
有關詳細信息, 請參閱 http://www.oracle.com/technetwork/java/javase/documentation/index.html。

 


免責聲明!

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



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