歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 使用 Java 命令編譯運行 Java 程序

使用 Java 命令編譯運行 Java 程序

日期:2017/3/1 9:06:21   编辑:Linux編程

Java 編譯的過程,就是將 java 項目從源文件變成 .class 文件的過程,而 .class 文件,最後會被加載到JVM 中運行。在 JDK bin/ 目錄下,提供了 javac 命令,用於將 .java 源文件編譯成 .class 字節碼文件,提供了 java 命令,以 Main_Class 為入口,根據運行需要,加載相應的 class 文件到 JVM 中執行。

關於環境變量

如果在沒有引用第三方 jar 的情況下,想在任意目錄下直接運行 javac 編譯 .java 文件,則需要設置 PATH 和 CLASSPATH 環境變量,關於如何設置,可參考

Ubuntu 14.04安裝JDK1.8.0_25與配置環境變量 http://www.linuxidc.com/Linux/2015-01/112030.htm

CentOS 搭建JDK環境 http://www.linuxidc.com/Linux/2015-06/118879.htm

Ubuntu 14.04安裝JDK1.8.0_25與配置環境變量 http://www.linuxidc.com/Linux/2015-01/112030.htm

Ubuntu 14.04 LTS安裝Oracle JDK 1.8 http://www.linuxidc.com/Linux/2014-11/109216.htm

Ubuntu安裝JDK與環境變量配置 http://www.linuxidc.com/Linux/2016-04/130438.htm

Ubuntu 14.04 安裝 JDK8 http://www.linuxidc.com/Linux/2014-09/106218.htm

Ubuntu下安裝JDK圖文解析 http://www.linuxidc.com/Linux/2014-09/107291.htm

兩種情況

如果 java 程序只有單個 .java 文件,且裡面有 public static void main(String[] args) 方法,可以直接使用 javac 編譯生成 .class 文件 -> 使用 java 命令運行程序

>$ javac Hello.java
>$ java Hello

如果有多個 .java 文件,則多了一個步驟,需要先打包成 .jar 文件,最後使用 java -jar xx.jar 命令運行即可,總結如下:使用 javac 編譯生成 .class 文件 -> 使用 jar 命令生成 jar 包 -> 使用 java 命令運行程序

jar 命令生成 jar 包

>$ cd classes // 首先進入根目錄,否則打包會有問題
>$ touch MANIFEST.MF
>$ jar -cvfm xx.jar MANIFEST.MF com/
/**
 * c 表示創建壓縮包 .jar 包
 * v 表示 顯示詳細信息
 * m 表示將後面的清單文件 MANIFEST.MF 一並打包到 jar 裡面去,注意這個不能省略
 * xx.jar 表示最終生成的 jar包名
 * classes/ 表示存放所有 .class 文件的 package 根目錄
 * 其中 清單文件 MANIFEST.MF 的內容如下:
   Manifest-Version: 1.0        // 清單版本
   Main-Class: com.linky.Main   // jar 包運行後的 main 函數入口類
 */

打包成功後,會在根目錄下生成 META-INF/ 和 com/ 兩個子目錄,其中 META-INF/ 中存放了清單文件MANIFEST.MF,com/ 目錄下存放了所有 .class 文件。

如果有多個 .java 文件,可以將需要編譯的 .java 文件,包括 package,寫入 sourcelist(可隨便命名) 中,詳情可見 javac

完整命令如下:

>$ find com/ -name '*.java' > sourcelist 
>$ javac @sourcelist -d classes/
>$ cd classes/
>$ touch MANIFEST.MF // 添加如下語句到該文件中,然後保存

Manifest-Version: 1.0       
Main-Class: com.linky.Server    // 裡面包含 main 入口函數

>$ jar -cvfm server.jar MANIFEST.MF com/
>$ java -jar server.jar

Copyright © Linux教程網 All Rights Reserved