更新時間:2022-09-27 11:03:22 來源:動力節點 瀏覽1243次
動力節點小來為大家介紹Java的編譯及運行。
一個源文件可以有多個類(class),但只能有一個類是public類
如果有一個類是public類,那么源文件的名字必須與這個類的名字完全相同,擴展名是 .java(注意這個有個點)
如果源文件沒有public類,那么只要名字和某個類相同,且擴展名是.java也可以
保存類型選擇為所以類型,編碼選擇為ANSI
(1)C盤轉到D盤
(2)進入某個子目錄(文件夾),比如下面的進入E盤的java文件夾
(3)退出某個子目錄,比如退出java文件夾
javac B.java
在上面可以看到編譯成功后出現了B.class文件(字節碼文件)
如果源文件有多個類,編譯源文件會生成多個擴展名為.class的文件,在每個擴展名為.class的文件中只存放一個類的字節碼,其文件名與該類的名字相同。
如果文件是這個
public class B {
int a=1;
int f(int b){
a=b;
return a;
}
}
編譯后得到的class文件,我使用反編譯器(網上下載的)可以得到這樣
public class B {
int a = 1;
int f(int paramInt) {
this.a = paramInt;
return this.a;
}
}
注意:在編譯時候可能會出現的問題
(1)如果回車后出現javac不是內部或外部命令,也不是可運行的程序或批處理文件
解決方法:
方法一:重新設置環境變量
方法二:在MS-DOS命令窗口輸入path D:jdk1.6in(這個是你jdk)并回車,然后再編譯
(2)如果出現兩個公共類,而名字是B.java或者是C.java
public class B {
int a=1;
}
public class C{
int b=1;
}
編譯時候會出現問題
所以符合了前面說的:源文件可以有多個類,但只能有一個類是public類
驗證上面這句話:
public class B {
int a=1;
}
class C{
int b=1;
}
編譯后
如果是這樣也可以編譯成功
public class B {
int a=1;
public class C{
int b=1;
}
}
(3)菜鳥看到的(暫時還沒驗證)
使用java虛擬機中的java解釋器(java.exe)來解釋,執行其字節碼文件(.class文件)
比如源文件:
public class B {
int a=1;
int f(int b){
a=b;
return a;
}
// 主類,java應用程序總是從主類的main方法開始執行
public static void main(String []args){
B b=new B();
System.out.println(b.f(3));
}
}
編譯后得到的字節碼文件(.class文件),使用反編譯器查看
public class B {
int a = 1;
int f(int paramInt) {
this.a = paramInt;
return this.a;
}
public static void main(String[] paramArrayOfString) {
B b = new B();
System.out.println(b.f(3));
}
}
運行:java B,得到結果是3
執行過程:java虛擬機首先將程序需要的字節碼文件加載到內存,然后解釋執行字節碼文件,加載到內存的同時就為主類中的main方法分配了入口地址。
注意:
(1)java解釋器執行的類名必須是主類的名字(沒有擴展名)
(2)如果解釋的時候出現錯誤,可能是main方法沒有寫對,或者是系統變量不正確
在MS-DOS輸入:ClassPath=D:jdk1.7jrelib t.jar;.;然后回車確定,再使用java解釋器運行主類。
(3)不可以帶著目錄運行程序,比如
java C: sB
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習