(1)javac:作用:編譯java文件;使用方法: javac Hello.java ,如果不出錯的話,在與Hello.java 同一目錄下會生成一個Hello.class文件,這個class文件是操作系統能夠使用和運行的文件。
(2)java: 作用:運行.class文件;使用方法:java Hello,如果不出錯的話,會執行Hello.class文件。注意:這里的Hello後面不需要擴展名。
假設我有一個Hello.java文件放在D:javatest 文件夾下。
打開cmd命令窗口,會出現C:userlenovo 這里出現的是系統用戶名,這里我們需要將路徑轉移到java文件所在目錄。
緊接著輸入 D:回車,會出現一下界面:
這時候我們需要定位到java文件所在目錄(這里是javatest目錄),接著輸入 cd javatest 回車。
此時進入到D:javatest目錄中,此時的Hello.java文件就在這里
這時候我們就可以用javac命令編譯啦,輸入javac Hello.java回車
這里如果沒有任何提示表示編譯成功,此時打開d:javatest文件夾你會發現此時多了一個名為Hello.class的文件,這就是操作系統能夠運行的文件。
接著輸入 java Hello回車,你就會看到文件被運行的結果。
第一:Hello.java中的內容是一個類,這個類的名字與.java文件名字必須完全一致。如果不一致將出錯。這里當你通過eclipse創建一個類文件的時候你就會理解的更清楚了,這里不贅述。
第二:javac 和 java 命令的使用方法要注意,格式。
第三:要使用這兩命令,必須配置好環境變數。
② java main方法中的命令行參數
作用:
當你使用命令行的形式運行.class文件時,向你的類傳遞參數.
C:\>java YourClassName 參數1 [參數2 參數3 ....]
參數之間用一個空格作為間隔符.
String[] args 這個字元串數組是保存運行main函數時輸入的參數的,例如main函數所在的類名為test 那麼你在cmd運行 java test a b c 時,args[0] = a ,args[1]=b, args[2]=c 你就可以在你的程序中調用你輸入的這些變數了。
args[]不就是那個字元串This is a simple Java program嗎?
-------完全不是的,你理解不對。這樣好了,你在運行的時候加個參數,比如 java test XX。然後在你的main函數裡面加這段話:System.out.println("arg is"+args[0]),然後看看輸出是什麼?
是不是這個:
This is a simple Java program
arg is XX
在運行時輸入java test xx yy zz,並且在你的main函數裡面加這段話:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然後看看輸出是什麼?
是不是:
This is a simple Java program
arg is xx yy zz
現在你理解了嗎。。。
如果沒關系,為什麼程序中去掉String args[]會出現錯誤?
--------之所以去掉會出錯在於,不帶String args[]的main函數和帶String args[]的main函數,本質上已經不是同一個函數了,java 本身不存在不帶String args[]的main函數,所以當然出錯了。
③ Java 的命令行 編譯和運行參數 如:-cp 怎麼理解
javac
用法:javac <選項> <源文件>
其中,可能的選項包括:
-g 生成所有調試信息
-g:none 不生成任何調試信息
-g:{lines,vars,source} 只生成某些調試信息
-nowarn 不生成任何警告
-verbose 輸出有關編譯器正在執行的操作的消息
-deprecation 輸出使用已過時的 API 的源位置
-classpath <路徑> 指定查找用戶類文件的位置
-cp <路徑> 指定查找用戶類文件的位置
-sourcepath <路徑> 指定查找輸入源文件的位置
-bootclasspath <路徑> 覆蓋引導類文件的位置
-extdirs <目錄> 覆蓋安裝的擴展目錄的位置
-endorseddirs <目錄> 覆蓋簽名的標准路徑的位置
-d <目錄> 指定存放生成的類文件的位置
使用-d參數,如類中定義了包,則編譯時會自動生成包, 如:javac -d . helloworld.java
表示在當前目錄下編譯Helloworld 類。.表示當前目錄,如helloword中定義有包,則在當前目錄下生成包:
-encoding <編碼> 指定源文件使用的字元編碼
-source <版本> 提供與指定版本的源兼容性
-target <版本> 生成特定 VM 版本的類文件
-version 版本信息
-help 輸出標准選項的提要
-X 輸出非標准選項的提要
-J<標志> 直接將 <標志> 傳遞給運行時系統
java
用法: java [-選項] 類 [參數...]
(執行一個類)
或者 java [-選項] -jar jar文件 [參數...]
(執行一個jar文件)
其中,可能的選項包括:
-client 選擇 "client" VM(ginger547:應該是指Virtual Machine)
-server 選擇 "server" VM
-hotspot 與 "client" VM同義 [不贊成]
默認情況的VM是client.
-cp <一個文件夾和zip/jar文件組成的類搜索路徑>
-classpath <一個文件夾和zip/jar文件組成的類搜索路徑>
一個由文件夾,JAR壓縮文件,或者ZIP壓縮文件組成的用來搜索類的列表
-D<名字>=<值>
設置一個系統屬性
-verbose[:class|gc|jni]
使詳細輸出變的可用
-version 列印產品版本然後退出
-version:<值>
只運行指定版本
-showversion 列印產品版本後繼續
-jre-restrict-search | -jre-no-restrict-search
在版本搜索的時候,包含/排除用戶私人的JRE
-? -help 列印幫助信息
-X 列印非標准選項幫助
-ea[:<包名>...|:<類名>]
-enableassertions[:<包名>...|:<類名>]
使斷言可用
-da[:<包名>...|:<類名>]
-disableassertions[:<包名>...|:<類名>]
是斷言不可用
-esa | -enablesystemassertions
使系統級斷言可用
-dsa | -disablesystemassertions
使系統級斷言不可用
-agentlib:<庫名>[=<選項>]
載入本地代理庫<庫名>,例如. -agentlib:hprof
同時可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
-agentpath:<路徑名>[=<選項>]
通過全路徑名來載入本地代理庫
-javaagent:<jar路徑>[=<選項>]
載入Java編程語言代理,可查看 java.lang.instrument
④ 菜鳥問:命令行怎麼編譯java程序
首先你要確定你的電腦是否配置了java的jdk
以及classpath,home,path的路徑
再試試
編譯時先要將dos路徑引導至你的java文件的路徑下
再試試,應該就可以了
最重要的是java的JDK環境的配置
⑤ java 中 如何通過命令行來傳遞參數
可以在命令行運行java程序時加上程序的參數。
例子如下:
public class HelloWorld{
public static void main(String args[]){
System.out.println("temp=" + args[0]);
}
}
源代碼截圖:
解釋一下: String[ ] args
該參數,是一個字元串數組,用來接收從命令行輸入的參數
1. 參數之間用空格隔開
2. java解釋器會自動處理,把用空格隔開的每一個參數通過args數組傳遞給買呢()方法。
3. 參數的下標從0開始,args[0]表示第一個參數,例如java HelloWorld 10 20 30
4.可以有多個空格,多個空格會被忽略。
(5)java命令行解析擴展閱讀:
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。
⑥ 怎麼用命令行編譯,打包,運行java
一、編譯:從.java生成.class
(1)eclipse編譯:
在菜單欄里選擇"項目"→"構建"/"自動構建",就會在workspace的項目里的bin目錄下自動生成.class文件,不需要手動一個個去編譯。
(2)命令行編譯:
進入src目錄,直接javac com/csdn/javacode/A.java,注意這里一定要寫全路徑com/csdn/javacode(這里一定是/號而非.號),並且.java文件一定要有後綴名!
這樣生成的.class文件和src在同一目錄下,就是在哪個目錄下手動一個個編譯,生成的.class文件就在哪個目錄下。
---------------------------------------------
二、運行:從.class生成.exe
命令行運行:
cd進入bin目錄(eclipse構建生成的一般都在bin目錄下),直接java com.csdn.javacode.EncryptClasses key.data
(運行EncryptClasses.class,輸出到key.data文件里)
-----注意.class文件在命令行里不要帶後綴名!並且路徑要寫全,執行時,包名加路徑時,一定是點號.而非/號!!!
------------------------------------------------------------
三、打包jar:
把零散的.class文件打包為jar:(不是在eclipse里"導出"為jar包)
cd進入要打成jar包的class文件所在目錄:jar cvf [生成jar的名稱.jar] [列出class文件] //若有多個用空格隔開
例1:操作零散的單個或幾個class文件:
cd bin
jar cvf ipaddress.jar com/cn/lbs/IPSeeker.class com/cn/lbs/SplitAddress.class
之後會在bin目錄下生成ipaddress.jar,不過這里jar下面沒有com.csdn.ipaddress包,因為之前沒有創建目錄
例2:把一個文件夾下面所有的class文件打成jar包
(這里讓生成的jar目錄下有com.csdn.ipaddress包,於是在總的文件夾ipaddress下新建文件夾嵌套com\csdn\ipaddress\,裡面放上需要打包的.class文件)
cd回到總的文件夾ipaddress,
jar cvf ipaddress.jar * 回車