❶ java 的命令行 編譯和運行參數 如:-cp 怎麼理解
如果當前你要編譯的java文件中引用了其它的類(比如說:繼承),但該引用類版的.class文件不在當前目錄下,權這種情況下就需要在javac命令後面加上-classpath參數,通過使用以下三種類型的方法 來指導編譯器在編譯的時候去指定的路徑下查找引用類。
(1).絕對路徑:javac -classpath c:/junit3.8.1/junit.jar Xxx.java
(2).相對路徑:javac -classpath ../junit3.8.1/Junit.javr Xxx.java
(3).系統變數:javac -classpath %CLASSPATH% Xxx.java
❷ 用java -cp命令在linux下執行jar文件里的主類(含main函數),報錯,求解。
一樓正解,-cp用來class path,就是需要用到的別的jar的位置
❸ java連接Linux伺服器,怎麼在java代碼中操作linux的cp命令來將/roo/a/tes.txt文件復制到/root/b文件夾下面
讀入文件流然後再輸出文件流,為什麼非要用cp命令
❹ 使用命令行javac如何導入外部的jar
有時候為了測試某個東東,我們直接使用javac和java命令來編譯和運行我們臨時寫出來的測試類。如果這個測試類用到了別的jar包怎麼辦呢?我們可以使用-classpath或者-cp參數來導入這些需要的包。
假定:有測試類f:\Test.java,它用到的lib分別是c:\abc.jar和d:\efg.jar。那麼我們的編譯和運行命令可以這樣寫
javac -cp c:\abc.jar;d:\efg.jar; f:\Test.java
java -cp c:\abc.jar;d:\efg.jar; f:\Test
注意:最後一個;後面必須要用空格把這個類和lib包分開。如果是在linux下,需要把;替換成:路徑當然也要替換成linux格式的。
❺ java調用windows cp與unzip 命令
您好謹嘩謹,提問者蘆運:
調用命令是祥基:Runtime.getRuntime().exec("cmd命令");
❻ 在CMD下用java命令出現「找不到或無法載入主類」問題
package是hellojava吧?那如果在E:/Workspace/hellojava/src/hellojava這目錄下運行,應該
這樣寫:java-cp../hellojava.hello
或者用絕對路徑:java-cpE:/Workspace/hellojava/srchellojava.hello
❼ 命令行運行java程序,引入的其他jar包時,如何解決
java -cp .;A.jar Bx0dx0ax0dx0aA 是你的jar包,跟B放在一個文件夾就行。如果不在一個地方,就要指定了,如:x0dx0a java -cp .;d:\A.jar Bx0dx0aB 就是你要執行的類 x0dx0a==================x0dx0a原理:x0dx0ajava 是執行編譯後的class的,這個不用多說,都知道...x0dx0a-cp 就是引入外部 zip包或者jar包。x0dx0a 正確來說就相當於你在環境變數配置的classpath後的參數。x0dx0a 即:指定運行褲畝如時需要的胡啟class。x0dx0a 其中 . 是在當前目錄找 ; 以後後面的,是到你指定的目錄找 x0dx0a==================x0dx0a你看我給的例子了嗎?我可沒那麼說。x0dx0a第一行可是這么寫的:java -cp .;A.jar B (A、B的解釋耐春在上面) x0dx0a.; 也別給漏了
❽ 如何用javac 和java 編譯運行整個Java工程
前言 本文教你怎麼用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
❾ 請教java命令中CP和classpath的區別是什麼
classpath 和 classpath* 區別野信耐: classpath:只會到你指定的class路徑中查找找文坦敬件; classpath*:不僅包頌春含class路徑,還包括jar文件中(class路徑)進行查找.
❿ java -cp $ORACLE_HOME/jdbc/lib/classes12.zip com.test.app.Main $*的含義
這是Unix Shell的指令,$*表示調用宴扮shell程序時傳入的所有參數。
這行指令的完整意思是:在classpath中包襲碰含Oracle目錄下的classes12.zip,然後執行com.test.app.Main的main方法,同時將shell參數傳入。
假設你這行字是在一個叫main.sh的文件中的。
那麼在unix命令行中打入 main.sh arg1 arg2
則在com.test.app.Main.java中,main(String[] args)的參數就是{"arg1", "arg2"}
另外,這個指令似乎有些問題,因為僅設置了classes12.zip為classpath,但這個包里應該沒有com.test.app.Main這個類的,所拍祥談以估計會報ClassNotFound。