首先
java中一個主類中只能有一個類聲明成public,你聲明了兩個,你應該將publicclassFamily中的public去掉。
count=f.name(count);
f.name(值);這個方法是將值賦給Family類型的對象f中屬性為name
count不可能得到f.name()的值,類型不對一個String一個int;
你可以f.name(count);或f.name = count+"";
『貳』 javac一次可同時編譯數個Java源文件嗎
這個是可以的。
解釋 :javac可以編譯多個文件,通過 「javac *.java"實現,前提是這些java文件都要在此編譯路徑下,如果不在的話,先通過cd命令進行位置切換即可。
『叄』 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文件中添加或修改。這其實也是一種「弱耦合」、模塊化的表現。
『肆』 如何用javac 編譯多個目錄中的java文件
根據我個人的經驗,只要找到包含主函數的那個類進行編譯,如果在主函數內有導入其他用戶編寫的包,會自動進行編譯得到.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文件如何編譯
1,使用doc命令進入到該目錄
2,在該目錄下輸入編譯命令javac *.java
3,java 命令運行相應的位元組碼文件