導航:首頁 > 源碼編譯 > 為Java編譯出來兩個文件

為Java編譯出來兩個文件

發布時間:2022-09-02 21:31:07

① 一個java編譯出了兩個.class

同一個文件夾下 相同名字的文件是不可能存在的,除非擴展名不一樣。。。
還有種方法,導出所有想保留的項目,然後重新安裝一遍

② java編譯後 產生兩個class文件 怎麼調用

後面的一個是前面的一個類產生的內部類,應該調用前面的一個類,前面的一個類會自動調用後面的一個的:
你可以輸入 :java chatclient
就可以運行了

③ Java 同一個包在cmd上多文件編譯

javac的編譯單位其實就是單個的java文件,為了達到同時編譯多個java文件的目的,可以將所需編譯的java文件路徑保存在一個txt中,比如sourcelist.txt,以換行為分隔符(這個過程稱為類文件注冊)。這些java文件沒有彼此聯系的必要,它們可以是隸屬不同的包、在不同的文件夾下(當然建議包路徑相同的java類文件放在同一文件路徑下),javac命令只會一行一行地讀取其中的記錄,作為一個單位進行類編譯。
舉例說明。假設你的這個包放在src文件夾下,src的父目錄為project,sourcelist.txt也事先新建在project文件夾下。首先將這個包中你需要編譯的java文件相對於src的路徑(如src\com\test\Test.java)注冊到sourcelist.txt文件中;接著在project文件夾中新建一個bin文件夾(或者class文件夾,命名隨你樂意取),用以編譯後class文件的放置(這個配以javac命令中-d選項去理解);如果還有其他類庫(如jxl.jar或者mysql.jar),建議在project目錄下新建一個lib(同樣命名不限)文件夾,然後復制到該文件夾下(配以-classpath選項理解);最後檢查上述准備工作都完成,win + R、輸入cmd都不用講,現在在cmd中用cd命令切換到project目錄,然後輸入命令:
javac -classpath lib/jxl.jar -sourcepath src @sourcelist.txt -d bin
現在就很好理解了。-d選項就是destination的意思,即生成class文件被送到該選項後面的bin文件夾;-classpath就是將你要用到的jar包注冊到類載入路徑中;-sourcepath就是告訴javac命令去哪裡找類文件。
最後呢,為了方便,可以在project文件夾下新建一個bat文件,並輸入以下內容:
javac -classpath lib/jxl.jar -sourcepath src @sourcelist.txt -d bin
@pause
這樣每次直接點擊即可,而你需要編譯其他包的或者其他java文件,直接在sourcelist.txt文件中添加或修改。這其實也是一種「弱耦合」、模塊化的表現。

④ 為什麼編譯一個java文件會生成多個class文件

這個是因為RPSalePayDao.java裡面有多個class,每個class在編譯的時候就會生成一個以class的名稱命名的.class文件。
要更新這幾個文件的時候都要放到伺服器,因為你要編譯,而且要上傳到伺服器。

⑤ 為什麼一個Java文件編譯後可以獲得多個位元組碼文件

public class A {
public static void main(String[] args) {
int i=1;
System.out.println(i);
}
}
class B {
public static void main(String[] args) {
int i=2;
System.out.println(i);
}
}

這樣編譯之後就是兩個位元組碼文件,同一個java文件中,只能有一個被public修飾的類,且這個類的類名就是java文件的名稱(上述例子文件為 A.java ),沒有被public修飾的類,編譯之後會生成類名.javac的文件,有幾個類就會生成幾個對應的javac文件,有點兒長,希望你能看明白,手打望採納

⑥ javac編譯後為什麼會產生多個class

RPSalePayDao$1
裡面有內部類才會這樣生成

你應該有類似添加了ActionListener這樣的內部實現方法。

當RPSalePayDao.java文件改變的時候,需要更新到伺服器,那麼這幾個class文件都需要放到伺服器嗎,為什麼
如果這樣,幾個內部類$1,$2必須也要放上去,否則會找不到class

⑦ 編譯如下java程序,為什麼生成兩個class文件,運行的時候運行哪個

一個java文件裡面有幾個class,就生成幾個class
運行有main函數的class

⑧ Java編譯成多個CLASS何解

這是因為你的程序裡面有匿名類,匿名類編譯後就會以主類$編號命名。
或者有以1、2、3命名的內部類(可能性很小)。所以才會生成這樣的文件。
至於你說的不能運行你可能是使用了package打包了,在命令行中默認是不能生成包的,需要你指定才可以,所以生成的也就不能運行

匿名類的例子
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
}

補充————————————————————

仔細看你的程序,絕對有匿名類。用Swing的話就會有事件處理方法是用匿名類的形式定義的。Netbeans一般都這樣生成。

要運行的話首先要看看你的主程序是不是打包了,有沒有package這樣的語句,如果有,那麼編譯的時候就要就要加上-d選項,如果有package語句,
假如是package a.b;那麼編譯:

javac -d . test.java
這樣。執行:java a.b.test

然後運行的時候 java

⑨ 一個java編譯生成兩個class是怎麼回事,怎樣改只生成一個class文件

如果你的類裡麵包含內部類,就會在編譯後出現兩個。另一個是類名加上$符號後再加上內部類的名字。
一個class就是把內部類去掉就好了。

閱讀全文

與為Java編譯出來兩個文件相關的資料

熱點內容
ark命令 瀏覽:39
seal是不是對稱密鑰演算法 瀏覽:29
免費學習的app在哪裡下載 瀏覽:177
rfid與單片機 瀏覽:589
5s相當於安卓什麼手機 瀏覽:689
哈佛商學院pdf 瀏覽:978
app的ip哪裡買 瀏覽:909
移動天文台app在哪裡下載 瀏覽:923
phpjsonencode亂碼 瀏覽:587
t3的伺服器名是什麼幾把 瀏覽:69
高中演算法語句 瀏覽:549
安卓充電接頭壞如何直接線 瀏覽:2
mcu編譯成庫 瀏覽:296
python官網訪問不了了 瀏覽:98
庫卡邏輯編程 瀏覽:919
加密幣驅動 瀏覽:982
怎麼解壓後的文件夾沒有激活工具 瀏覽:808
java自帶加密 瀏覽:619
關閉表命令 瀏覽:510
黃大龐健康妙方pdf 瀏覽:940