青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

杰 & C++ & Python & DM

命令行下Java的編譯及運行(2)


  上篇博文中說明了如何通過命令編譯及運行自己的Java文件。但是當前都是以項目為單位的,如何組織項目中的文件以及對項目的編譯運行,是命令行編譯主要解決的問題。

  1. 項目組織
  我們以下面的項目作為樣例來說明:
Test/
|-- Test.jar
|-- classes
|   |-- Main.class
|   |-- OutterTest.class
|   `-- inner
|       `-- InnerTest.class
|-- run.py
|-- run.sh
`
-- src
    
|-- Main.java
    
|-- OutterTest.java
    `
-- inner
        `
-- InnerTest.java

  上面是一個項目:Test。其中,有兩個文件夾,src用來放置所有的源代碼,也就是.java文件;classes用來放置相應的.class文件。Test.jar是最終生成的jar文件,run.py和run.sh是項目的腳本文件。下面列出三個.java文件,只是簡單的顯示一句話:
// Main.java
import inner.*;
public class Main
{
    
public static void main(String[] args)
    {
        System.out.println(
"main: hello word!");

        OutterTest out1 
= new OutterTest();
        out1.hello();

        InnerTest in1 
= new InnerTest();
        in1.hello();
    }
}

// OutterTest.java
public class OutterTest
{
        
public void hello()
        {
                System.out.println(
"Hello OutterTest!");
        }
}

// InnerTest.java
package inner;
public class InnerTest
{
        
public void hello()
        {
                System.out.println(
"Hello InnerTest!");
        }
}

  注意上面的InnerTest類,它在package inner中,所以將InnerTest.java放在inner文件夾下,這樣可以保證統一。在Eclipse中,新建一個類時,會讓你填寫package名,然后Eclipse會為你新新建一個相應的文件夾。

  2. 項目編譯
  
  javac -d classes src/*.java src/inner/*.java
  
  由上一篇知道,javac中-d表示”指定存放生成的類文件的位置“,也就是將生成的.class文件放在-d指定的文件夾中。需要指出的是,classes文件夾是手動建立的。
  另外,javac還可以批量編譯.java文件,上面的命令表示編譯src目錄下的所以.java文件、編譯src/inner目錄下的所有.java文件。這樣就可以批量編譯.java文件,并將生成的.class文件放在classes文件夾中。這里同樣要指出一點,因為package inner的關系,會自動建立inner文件夾,并將所有package inner下的類文件.class放在classes/inner下。

  3.項目打包
  
  jar -cvf Test.jar -C classes/ .

  這個命令將會把classes下的所有文件(包括.class和文件夾等)打包為Test.jar文件。
  上篇博客中,介紹了參數-C的意義:-C  更改為指定的目錄并包含其中的文件,如果有任何目錄文件, 則對其進行遞歸處理。它相當于使用 cd 命令轉指定目錄下。
  注意后面的"."的用法,jar可以遞歸的打包文件夾,"."表示是當前文件夾。如果執行命令“jar -cvf Test.jar .”,表示將當前目錄下的所有文件及文件夾打包。所以上面的命令的意思就是“將classes下的所有文件打包為Test.jar”。

  4.項目運行
  
  java -cp Test.jar Main

  通過上面的命令就可以執行Test.jar中的Main.class。其中,cp指定了jar文件的位置。

  5. 腳本文件
  通過上面的幾步,我們就可以完成整個項目的編譯和運行。而且,通過src和classes兩個文件夾將源文件和目標文件分開,使項目比較整潔。但是如果每次編譯、運行都要輸入上面一系列命令,還是比較繁瑣的,尤其當項目文件較多時,這時通過腳本文件管理整個項目是明智的選擇。
  下面是項目的腳本文件run.py
import os
import sys

if __name__ == "__main__":

        ProjectJar 
= "Test.jar"

        
if sys.argv[1== "c":
                
print("Compile program.")

                src 
= "src/*.java src/inner/*.java"
                os.system(
"javac -d classes " + src)
                os.system(
"jar -cvf " + ProjectJar + " -C classes/ .")

        
if sys.argv[1== "r":
                
print("Run program.")
                os.system(
"java -cp " + ProjectJar + " Main")

        
print("Over!")

  通過這個腳本文件,可以使用"python run.py c"完成項目的編譯、打包;使用"python run.py r"運行項目。

  通過這篇文章,我們已經了解了Java項目的管理方法,以及編譯、打包、運行的命令行,最后介紹了使用腳本文件有效管理項目。
  附件中包含整個項目,同時還包括一個run.sh,方便不熟悉python的人查看。
  附件: Test.tar

posted on 2012-09-06 18:56 jaysoon 閱讀(3379) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

導航

統計

常用鏈接

留言簿

隨筆分類

隨筆檔案

文章分類

文章檔案

收藏夾

C++

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美午夜不卡在线观看免费| 国产区亚洲区欧美区| 亚洲日韩视频| 91久久久久久久久久久久久| 欧美国产综合视频| 日韩天堂在线视频| 一区二区三区av| 国产精品综合久久久| 久久精品一本久久99精品| 久久久91精品| 99国产精品久久久久久久久久 | 久久久亚洲精品一区二区三区| 亚洲伊人网站| 亚洲欧美色一区| 影音先锋中文字幕一区二区| 亚洲福利国产精品| 欧美日韩亚洲高清一区二区| 亚洲一区二区动漫| 欧美在线你懂的| 91久久精品国产91性色tv| 99精品久久| 国产在线拍偷自揄拍精品| 欧美韩日一区二区| 欧美午夜一区| 免费欧美视频| 国产精品久久亚洲7777| 免费观看30秒视频久久| 欧美日韩精品三区| 久热这里只精品99re8久| 欧美精品www在线观看| 欧美专区18| 欧美区日韩区| 久久婷婷国产麻豆91天堂| 欧美日韩国产成人| 另类图片国产| 国产精品视频成人| 亚洲黄色一区二区三区| 国产亚洲精品一区二555| 亚洲日韩中文字幕在线播放| 国内精品美女在线观看| 亚洲麻豆视频| 亚洲韩国日本中文字幕| 翔田千里一区二区| 亚洲桃花岛网站| 欧美第一黄网免费网站| 久久久综合免费视频| 国产精品xxxav免费视频| 欧美激情1区2区| 曰本成人黄色| 欧美一区二区在线免费播放| 亚洲女人天堂av| 欧美精品xxxxbbbb| 亚洲高清免费| 亚洲日产国产精品| 美女露胸一区二区三区| 老司机午夜免费精品视频| 国产精品专区h在线观看| 亚洲视频999| 亚洲一二三区在线| 欧美日韩一区二区三| 亚洲国产精品久久久| 91久久久精品| 蘑菇福利视频一区播放| 欧美成va人片在线观看| 在线高清一区| 老司机一区二区| 欧美黑人国产人伦爽爽爽| 亚洲国产精品久久| 久久综合一区二区| 欧美好吊妞视频| 亚洲日本欧美在线| 欧美区亚洲区| 亚洲视频一起| 久久国产精品99精品国产| 国产手机视频一区二区| 久久精品72免费观看| 久久久午夜电影| **网站欧美大片在线观看| 久久婷婷国产麻豆91天堂| 欧美成人一区二区三区| 亚洲美洲欧洲综合国产一区| 欧美日韩人人澡狠狠躁视频| 一区二区三区欧美在线| 久久久999成人| 亚洲激情另类| 欧美日韩亚洲一区二区三区在线观看| 亚洲在线观看| 国产美女精品| 久久精品国产亚洲5555| 蜜臀av在线播放一区二区三区| 欧美精品久久久久久久久老牛影院 | 美女91精品| 亚洲人屁股眼子交8| 亚洲欧美卡通另类91av| 国产一二精品视频| 女人香蕉久久**毛片精品| 亚洲美女一区| 久久久久久久一区| 亚洲国产婷婷香蕉久久久久久99 | 午夜久久黄色| 欧美成人国产va精品日本一级| 欧美日韩国产色站一区二区三区| 性欧美18~19sex高清播放| 国产伦精品一区二区三区在线观看| 亚洲国产精品久久精品怡红院| 国产拍揄自揄精品视频麻豆| 久久深夜福利免费观看| 一区二区三区四区国产| 免费中文日韩| 亚洲小说春色综合另类电影| 激情综合在线| 国产伦理一区| 欧美久久久久久久| 久久精品青青大伊人av| 一区二区三区四区五区精品| 欧美sm视频| 久久久久网站| 午夜在线成人av| 99国产精品视频免费观看一公开| 欧美丰满高潮xxxx喷水动漫| 先锋影音国产精品| 日韩特黄影片| 亚洲福利一区| 欧美88av| 久久久久国产精品www| 一本大道久久精品懂色aⅴ| 激情视频一区| 国产在线视频欧美| 国产精品亚洲综合一区在线观看| 亚洲在线一区二区| 洋洋av久久久久久久一区| 欧美黄色免费| 欧美成人一区在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 又紧又大又爽精品一区二区| 国产日韩欧美夫妻视频在线观看| 中国成人黄色视屏| 最新高清无码专区| 亚洲国产精品久久| 亚洲第一区在线| 亚洲第一中文字幕在线观看| 欧美高潮视频| 欧美激情在线播放| 亚洲精美视频| 亚洲精品免费在线播放| 最新国产拍偷乱拍精品 | 国产偷久久久精品专区| 国产精品海角社区在线观看| 欧美三区美女| 欧美三级电影精品| 国产精品久久77777| 欧美日韩精品一本二本三本| 欧美日韩第一区日日骚| 欧美日韩精品中文字幕| 欧美三区美女| 国产日韩欧美中文| 狠狠综合久久av一区二区老牛| 欧美激情精品久久久久久大尺度 | 美女视频黄免费的久久| 久久一区二区三区国产精品 | 在线中文字幕不卡| 亚洲三级免费电影| 一区二区三区四区五区视频 | 国产精品婷婷| 国产啪精品视频| 一区二区三区在线不卡| 今天的高清视频免费播放成人| 欧美日韩精品不卡| 国产精品视频1区| 国产一区二区三区黄视频| 精品999久久久| 日韩午夜电影av| 欧美一区二区三区四区在线| 久久米奇亚洲| 亚洲精品一区在线观看| 亚洲综合电影一区二区三区| 久久全球大尺度高清视频| 欧美日韩亚洲天堂| 国产亚洲成人一区| 99视频日韩| 久久蜜桃av一区精品变态类天堂| 亚洲永久字幕| 免费影视亚洲| 亚洲五月婷婷| 欧美成年人视频网站| 国产精品初高中精品久久| 怡红院精品视频| 午夜国产精品视频| 亚洲国产精品久久人人爱蜜臀 | 亚洲三级影院| 欧美一区二区三区精品电影| 欧美国产日本高清在线| 国产日韩综合| 亚洲性人人天天夜夜摸| 欧美大片第1页| 亚洲一区二区三区三| 欧美国产免费| 136国产福利精品导航网址| 欧美一区二区在线播放| 一本色道久久综合精品竹菊|