導航:首頁 > 程序命令 > java命令類

java命令類

發布時間:2023-01-05 18:29:20

java命令解析以及編譯器,虛擬機如何定位類

1、安裝JDK,配置環境變數。 不將JDK所在的目錄配置到系統環境變數中,系統怎麼能找到JDK中的編譯器,解釋器在哪呀?如果不指明JDK的bin文件夾的位置,在shell中是無法找到javac/java命令的。這點就不多說了。 2、編譯,解釋執行Java程序。【 javac命令/java命令】 (1) Test.java源代碼 Java代碼 //預設包,該程序源代所在位置: e:/project/ Test.java public class Test{ ..... public static void main(String[] args){ ..... } } 編譯命令: 【javac e:/project/Test.java 】 在e:/project目錄下生成了Test.class 注意: ① 如果想要將Test.class生成在指定目錄下,可以使用javac -d命令,如【 javac -d c:/ e:/project/Test.java 】 在c:/目錄下生成T est.class(即e:/Test.class) ② javac -cp 中的-cp並不是指定Test.java的目錄,這一點不要誤解了。-cp/-classpath只能是指定類文件(.class文件)的路徑。上面的命令不能寫成: java -cp e:/project Test.java 解釋執行命令 :【 j ava -cp e:/project Test】 將調用解釋器執行e:/project中的Test.class位元組碼。 注意: ① -cp 是指定用戶類文件的位置,比如上面的Test.class的位置。這里因為要尋找Test.class類文件,而不是Test.java源代碼文件,所以要通過-cp指定。千萬沒有這樣的執行命令: java e:/project/Test (2) Test.java源代碼 Java代碼//預設包,但源代碼中引用了一個JAR包內的自定義類,這個JAR包位於c:/目錄下 import net.single.util.SL; //導入自定義JAR包中的類 public class Test{ private SL aObject=new SL(); //初始化JAR中的SL類 public static void main(String[] args){ ...... } } 編譯命令: 【 javac -cp c:/single.jar e:/project/Test.java】 在e:/project目錄下生成了Test.class 注意: 如果當前你要編譯的java文件中引用了其它的類,但該引用類的.class文件不在當前目錄下(或在其他目錄下,或在.zip/.jar內),這種情況下就需要在javac命令後面,加上-cp/-classpath參數來指明這些類的位置。 一般來說有三種指定方式: ① 絕對或相對路徑:javac -cp c:/single.jar Test .java 或 javac -cp ../single.jar Test .java (其中.. 表示上一級目錄)
② 系統變數:javac -cp %CLASSPATH% Test .java (其中:%CLASSPATH%表示使用系統變數CLASSPATH的值進行查找,這里假設single.jar的路徑就包含在CLASSPATH系統變數中) ③ 當前目錄: javac -cp ./single.jar Test.java (其中. 表示當前目錄) 解釋執行命令 :【 java -cp c:/single.jar;e:/project Test】 注意: ① -cp的路徑不僅指定了所需要的single.jar的位置,還必須指出編譯後的Test.class的位置。 ② 類路徑中的不同項目要用分隔符區分,Unix系統的分隔符是冒號(:),Windows的是分號(;) (3) Test.java 源代碼 Java代碼//該類在net.single包中,類中沒有引入其他目錄下的自定義類 package net.single; public class Test{ ..... public static void main(String[] args){ ..... } } 編譯命令:【javac -d . e:/project/Test.java 】 注意: ① 如果沒有-d而直接編譯javac e:/project/Test.java。將會在 e:/project 目錄下直接生成一個Test.class,但此Test.class無法解釋執行,因為它實際上在e.single包中。所以必須將包一起編譯出來,這里用了-d參數。 ② 上面的編譯結果將在e:/目錄下 自動根據包的結構形式創建文件目錄,e:/net/single/Test.class 解釋執行命令 :【java -cp e:/ net.single.Test 】 現在我們總結一下: [a.] 沒有IDE環境,編譯一個大型項目是很困難的,因為必須把需要被其他類引用的類先編譯,而且最好把包結構一起編譯出來。所以一般命令格式如下: 編譯: javac -cp (需要引入的類文件路徑1;需要引入的類文件路徑2;....) -d (編譯出的類文件存放的位置目錄) (待編譯文件路徑) 執行: java -cp (需要解釋執行的類文件路徑) (帶包的類文件) 例:現在要編譯一個類源碼: Test.java,其中該類位於E:/project/下 (1. Test源代碼中使用了一個JAR包中的類,這個single.jar包位於C:/目錄下。 (2. Test源代碼中使用了一個自定義類Content,這個類的源代碼Content.java位於E:/下 (3. Test所在包為net.single,Content所在包為net.single.cont 解決: 步1:由於Test使用了Content類,所以必須先編譯Content,而且Content類在E:/目錄下,而且 屬於包net.single.cont 編譯命令: javac -d . e:/Content.java 編譯結果: 在Content.java的當前目錄下生成了一個 net/single/cont/Content.class 文件(帶包結構),即e:/net/single/cont/Content.class 步2:編譯Test類,並指明所引入的single.jar包和Content.class的位置 編譯命令: javac -cp c:/single.jar;e:/net/single/cont -d . e:/project/Test.java 編譯結果: 在Test的上一級目錄下生成了一個 net/single/Test.class 文件,即e:/ net/single/Test.class 步3:解釋執行Test.class 執行命令: java -cp c:/single.jar;e:/ net.single.Test 3、編譯器,虛擬機如何定位到類的 Java代碼package net.single; import java.util.*; import net.single.util.*; public class Test{ //SingleUtil類在c:/single.jar中的net.single.util包下 private SingleUtil sut=new SingleUtil(); } 編譯命令: javac -cp c:/single.jar -d . e:/project/Test.java 編譯器首先找到e:/project/Test.java。然後對Test源代碼進行編譯,當編譯到創建SingleUtil類對象的語句時,編譯器要開始尋找SingleUtil.class的位置。編譯器首先查找包含這個類的所有包的位置,並查詢所有的import指令,確定其中是否包含了被引用了的類。 如上面的Test.java,編譯器將試圖查找java.lang.SingleUtil,java.util.SingleUtil,net.single.util.SingleUtil以及當前包中的SingleUtil(即net.single.SingleUtil)。編譯器將在三個部分中查找類文件: (1) 在JDK的lib目錄下的標准類庫文件中查找java.lang,java.util和net.single.util包。顯然只能找到java.lang和java.util包。然後在這兩個包中查找SingleUtil類文件。當然是找不到的。 (2) 在編譯命令中-cp參數表明的類路徑(C:/single.jar)下查找java.lang,java.util和net.single.util包。顯然只能找到net.single.util包,然後在裡面找到SingleUtil類文件。 (3) 在Test.java的當前目錄下查找SingleUtil,也是沒有的。 如果沒有找到SingleUtil,或者找到多個SingleUtil。

❷ javac命令和java命令做什麼事情

javac命令是用來編譯源代碼文件的,即xxx.java文件的, 如:javac Test.java 這樣就會生成Test.class文件。
java 是運行java程序的,即執行類的,比如:java Test 就可以運行剛生成的Test.class文件

❸ 怎麼用命令提示符運行java程序

這個錯誤顯然是沒有找到對應的.class文件,一般錯誤離不開這幾種

1是,字母拼寫錯了,和你生成的.class文件名稱不一致,所以找不到
2是,路徑錯了。比如你的.class生成在D盤下,可是你現在在C盤運行java命令,顯然也是找不到
3是。你沒有編譯,沒有生成對應的.class文件,重新javac編譯一下
4是你的classpath沒有配置好。一般需要.;%java_home%/lib;%java_home%/lib/tools.jar;這個classpath是從你配置的目錄去找.class文件的。
一般是先找本目錄--也就是.;所以你看一下配置有無問題

%java_home%是你對應的的安裝路徑

首先樓主你先確定你的java和javac沒有錯。

建議樓主首先用 dir 指令查看一下當前目錄下是否生成了.class。然後按上面的幾種試一下解決。
希望能幫到樓主

❹ 關於在命令符中運行java類

Java是先編譯後運行的,使用javac.exe將編寫好的 .java 文件 編譯成 .class 文件,然後在用java.exe運行 .class 文件。就可以了
javac.exe 文件名.java ;

java 文件名.class;
你試試,應該就可以了

❺ 編譯java程序需要使用什麼命令

編譯命令是 javac

  1. 首先使用記事本編輯一段簡單的Java代碼

    ❻ Java有沒有處理命令行的類型/函數

    如果在Java中,要調用命令行,可以用 Runtime對象。

    Process ps = Runtime.getRuntime().exec("命令行");

    不過要注意的是,需要處理該命令行的輸出信息和所需的輸入,否則可能會因為IO阻塞而無法正常執行。

    ❼ 在JAVA編程中,什麼命令用來執行java類文件

    在 dos 下 ,直接編譯 javac 過了 ,生成 *.class 文件 ,然後再用 java 解釋就行了;
    例如 一個java 文件: Test.java

    可以這樣 javac Test.java
    然後編譯成功生成 Test.class 之後 再進行操作: java Test 即可
    當然,在其他開發工具中也可以,例如 jcreator , eclipse 等也可以!

    ❽ 編譯Java程序的命令是:

    javac {Java的類名}

    如果Java類不在當前目錄下的話,類名前面還需要有類所在的路徑。

閱讀全文

與java命令類相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163