java多個類編譯
可以javac 指令的參數-sourcepath指定源文件所在目錄(src),可以是一個或是多個;在同一個目錄下直接編譯主類就行。
B. java某個類繼承了多個類,編譯時會
說明:這是一個新的系列,定下一個目標,只要不忙,每天都會進行一次更新
驗證
public class ClassD {
ClassB b;
public static void main(String[] args) {
System.out.println("xxx");
}
class ClassE {
ClassB b;
}
}
class ClassF {
ClassB b;
}
class ClassG {
ClassB b;
}
abstract class ClassH {
ClassB b;
}
interface ClassI {
}
上面的代碼中一共有6個類,ClassD ClassE ClassF ClassG ClassH ClassI
ClassD 正常類
ClassE classD的內部類
ClassF 只是寫在classD.java中的普通類
ClassG 只是寫在classD.java中的普通類
ClassH 抽象類
ClassI 介面
編譯之後,如圖:
可以證明的是
如果再一個java文件中有多個類,除去內部類,剩下的每個普通類都會生成一個class文件
生成完的class文件:
public class ClassD {
ClassB b;
public ClassD() {
}
public static void main(String[] args) {
System.out.println("xxx");
}
class ClassE {
ClassB b;
ClassE() {
}
}
}
class ClassF {
ClassB b;
ClassF() {
}
}
登錄後復制
class ClassG {
ClassB b;
ClassG() {
}
}
登錄後復制
abstract class ClassH {
ClassB b;
ClassH() {
}
}
登錄後復制
interface ClassI {
}
登錄後復制
總結
如果一個java文件中有多個類,除去內部類,剩下的每個普通類都會生成一個class文件
如上圖:一個java文件中有6個類生成了5個class文件,因為其中有個類是內部類,如果都是外部類的話,則會生成6個class文件
C. 如何用JAVAC一次性編譯多個包下的JAVA文件
1.利用-cp
cd xxx
dir *.java/s/b > srclist.txt
or dir x:/yyy/zzz/*.java/s/b > srclist.txt
javac -cp .;xxx/yyy/zzz.jar;x/y/z.jar -d classes @srclist.txt
2.直接使用
這個,主要是在做一個獨立的Java項目,它不依賴IDE,同時要在別人電腦上編譯運行
下面編譯運行用到了jar包、properties文件。首先進入項目的根目錄下,注意:每一行,表示:DOS系統將執行的指令。
G:
cd testJava
上面,兩個命令為模擬,進入項目根目錄(具體目錄,根據自己程序所在目錄)。
javac -classpath .;../previousRecord.properties;../lib/jtds-1.2.5.jar;com/cjb/properities/jdbc.properties com/cjb/jdbc/*.java com/cjb/client/*.java -encoding UTF-8
上面命令,表示:編譯com/cjb/jdbc下所有java類和com/cjb/client下所有java類,這些類用到了previousRecord.properties文件(它的路徑是相對的)和jtds-1.2.5.jar的文件jar包(它的路徑也是相對的),同時用的編碼是UTF-8。
java -Xms64m -Xmx512m -cp .;../previousRecord.properties;../lib/jtds-1.2.5.jar;com/cjb/properities/jdbc.properties com/cjb/client/MailDispatcherOperation
上面命令,表示:執行com/cjb/client下的MailDispatcherOperation.class(它裡面有Main函數)。
D. java 同時編譯多個類的問題
可以javac 指令的參數-sourcepath指定源文件所在目錄(src),可以是一個或是多個;在同一個目錄下直接編譯主類就行。
請採納答案,支持我一下。
E. Java的源代碼中無論定義多少個類, 編譯結果就只生成一個以.class為後綴的位元組碼文件對嗎內部內
怎麼可能呢,定義了多少個class就會生成多少個位元組碼文件的。但是如果一個類中定義了多個類,這多個類中最多隻能有一個public修飾的類,而且這個類的類名必須和文件名一致,其餘的類可以隨意。但是有多少個類就會產生多少個位元組碼文件的。
F. 請問使用sublime text3進行java程序編譯時,如何同時編譯並運行多個類
兩個類分別有各自的入口函數,這就相當於是兩個程序,要運行只能單獨運行,這不管是記事本cmd還是notepad++還是eclipse都是這樣,如果兩個類需要一起運行,可以用其中一個類調用另一個類的方法,例如
final class A{
public A(){
System.out.println("Excuting");
}
}
untitled類中調用new A();就行