前言 本文教你怎麼用javac和java命令 以及如何利用腳本(shell或bat)方便處理 並用簡單的實例展示這些用法
IDE是把雙刃劍 它可以什麼都幫你做了 你只要敲幾行代碼 點幾下滑鼠 程序就跑起來了 用起來相當方便 你不用去關心它後面做了些什麼 執行了哪些命令 基於什麼原理 然而也是這種過分的依賴往往讓人散失了最基本的技能 當到了一個沒有IDE的地方 你便覺得無從下手 給你個代碼都不知道怎麼去跑 好比給你瓶水 你不知道怎麼打開去喝 然後活活給渴死
之前用慣了Myeclipse Java文件編譯運行的命令基本忘得一干二凈 現在項目出了原型 放到伺服器上去測試 SSH一登陸上伺服器就傻眼了 都是命令行 以前程序圖標什麼的都成了浮雲 程序放上去了不知道怎麼去編譯運行 只能補補課了 下面做下補課筆記
一 javac命令javac 用於編譯Java文件 格式為 java [options] [sourcefiles] [@files]其中 options 命令行選項 sourcefiles 一個或多個要編譯的源文件 @files 一個或多個對源文件進行列表的文件 有時候要編譯的文件很多 一個個敲命令會顯得很長 也不方便修改 可以把要編譯的源文件列在文件中 在文件名前加@ 這樣就可以對多個文件進行編譯 對編譯一個工程很有用 方便 省事
有幾個比較重要的選項 d 用於指定編譯成的class文件的存放位置 預設情況下不指定class文件的存放目錄 編譯的class文件將和源文件在同一目錄下 classpath 可以簡寫成 cp 用於搜索編譯所需的class文件 指出編譯所用到的class文件的位置 如jar zip或者其他包含class文件的目錄 指定該選項會覆蓋CLASSPATH的設定 sourcepath用於搜索編譯所需的源文件(即java文件) 指定要搜索的源文件的位置 如jar zip或其他包含java文件的目錄 需要注意windows下和linux下文件路徑分隔符和文件列表(即 classpath和 sourcepath指定的文件)分隔符的區別 windows下文件路徑分隔符用 文件列表分隔符用分號 linux下文件路徑分隔符用 / 文件列表分隔符用冒號 二 java命令java 用於執行程序 格式如下 java [options] classfile options 命令行選項 一般用於 classpath 指定要執行的文件所在的位置以及需要用到的類路徑 包括jar zip和class文件目錄 會覆蓋CLASSPATH的設定三 腳本如果要敲的命令很長 每次要編譯運行的時候都要重新敲一遍 這是一件很痛苦的事情 所以用腳本可以大大方便你的工作量 在linux下用shell腳本 windows下用bat批處理程序 因為是在linux下 我這里只是簡單介紹一下shell 關於bat批處理程序的語法自己網路一下 不難
開頭linux有很多不同的shell 通常使用bash(bourne again shell) 程序必須以下面的行開始 #!/bin/sh #!用來告訴系統用後面的參數來執行程序 這里使用的是/bin/sh要使你的腳本能夠執行 還必須讓這個文件有可執行許可權 使用下面命令更改文件許可權 chmod +x filename 注釋以#開始的句子表示注釋 一直到這行結束 多寫注釋有利於以後重新看的時候知道自己在做什麼 變數shell的腳本的變數都是字元串 不用申明類型 定義的時候直接 變數=值 即可 用到變數的的時候用 $變數 或者 ${變數} echo命令用於列印 舉個例子 #!/bin/sh # 定義變數words 值為hello world words= hello world # 列印變數words的值echo $words 命令shell腳本裡面可以直接任意使用linux命令 要用到什麼命令直接敲進去即可 記住一些常用的命令 cd 打開目錄ls l 顯示目錄信息rm fr 遞歸刪除目錄及下面的文件 不提示信息mkdir 創建目錄pwd 顯示當前路徑kill pid 強制殺掉某個進程號的進程pkill 殺掉某個名字的進程ps aux 顯示運行進程信息netstat pan 查看網路埠監聽情況四 例子下面是文件pile 用於編譯整個java工程 把編譯的文件放到指定目錄下
view plain #!/bin/sh # Define some constants ONSSERVER=ONSServer PROJECT_PATH=/root/iot oid JAR_PATH=$PROJECT_PATH/lib BIN_PATH=$PROJECT_PATH/bin SRC_PATH=$PROJECT_PATH/src/$ONSSERVER
# First remove the sources list file if it exists and then create the sources file of the project rm f $SRC_PATH/sources find $SRC_PATH/ name * java > $SRC_PATH/sources list
# First remove the ONSServer directory if it exists and then create the bin directory of ONSServer rm rf $BIN_PATH/$ONSSERVER mkdir $BIN_PATH/$ONSSERVER
# Compile the project javac d $BIN_PATH/$ONSSERVER classpath $JAR_PATH/jdom jar $JAR_PATH/oro jar @$SRC_PATH/sources list下面是文件run 用於執行程序 view plain #!/bin/sh
# Define some constants ONSSERVER=ONSServer PROJECT_PATH=/root/iot oid JAR_PATH=$PROJECT_PATH/lib BIN_PATH=$PROJECT_PATH/bin
lishixin/Article/program/Java/hx/201311/27024
② 物聯網實踐 | Huawei LiteOS開發環境搭建及Demo程序在Hi3861上編譯燒錄運行
本次實踐是為嘗試在嵌有華為海思晶元的 Hi3861 WIFI物聯網開發板上配置開發環境並使用配套開發工具( HUAWEI DevEco Device Tool 或 HUAWEI LiteOS Studio )將Demo工程編譯燒錄和運行。
參照華為海思編撰的 《物聯網技術和應用》 進行搭建。
1.確認開發環境已經正確安裝後,啟動 Huawei LiteOS Studio
2.新建工程, SDK版本 選擇 HiHope WiFi_IoT Hi3861SPC025 ;
SDK目錄 在HiSpark_Pegasus_TechnologyApplication_IoT_Kit下的 HiHope_WiFi-IoT_Hi3861SPC025 ;
參考目錄 選擇在HiSpark_Pegasus_TechnologyApplication_IoT_Kit下的 HiHope_Pegasus_HelloWorld 。
目標板Hi3861V100。
3.按F4進入工程配置, 目標板配置 中:廠商 HiSilicon ,選中目標板 Hi3861V00 ,確認。
4. 編譯器配置森滲散 中:SConstruct腳本,點擊文件夾右側的放大鏡自動搜索SConstruct腳本位置,正常搜索完點確認。
5. 燒錄器配置 中:燒錄方式選擇 HiBurner ,確認。
6. 串口配置 中:成功連接Hi3861板後,埠選擇唯一一個COM埠;波特率選擇 921600 ,確認。
7.F7 編譯 ,成功此氏時終端輸出紫色 BUILD SUCCESS 字樣。
8.F8 燒錄 ,出現HiBurn程序窗口時,按一次喊鏈Hi3861板上的Ret按鍵,燒錄開始。成功時如圖:
9.燒錄完成,重新拔插數據線,HelloWorld程序運行正常,OLED屏上顯示Hello World字樣,Hi3861板上LED燈閃爍。