導航:首頁 > 源碼編譯 > 為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編譯出來兩個文件相關的資料

熱點內容
全新勝達壓縮比 瀏覽:217
華為伺服器ip地址 瀏覽:898
雲伺服器底部窗口最大開幾個 瀏覽:146
java繼承例子 瀏覽:857
加密鎖公司能辦幾個 瀏覽:547
學而思藍思APP叫什麼名字 瀏覽:912
單片機80h等於多少 瀏覽:846
紅樓夢人民文學版pdf 瀏覽:910
ccs6中工程導入及編譯 瀏覽:720
飛思卡爾單片機官網 瀏覽:646
模擬51單片機 瀏覽:865
密碼器單片機 瀏覽:381
php訂單處理 瀏覽:251
安慶程序員接私活哪裡接 瀏覽:980
程序員那麼可愛第9集預告片 瀏覽:670
手機解壓縮工具在哪 瀏覽:759
如何啟用阿里雲伺服器 瀏覽:740
python里有trim函數嗎 瀏覽:693
pdf裡面的文字怎麼復制 瀏覽:903
ps切圖壓縮 瀏覽:301