java編譯兩個文件
根據我個人的經驗,只要找到包含主函數的那個類進行編譯,如果在主函數內有導入其他用戶編寫的包,會自動進行編譯得到.class文件的。你可以試試看。
⑵ java編譯同一文件夾兩個文件,a需要創建b的實例,b已經編譯好,a找不到b的符號
foreach($abc as $k => $t) {
$r[$t[0]]++;
}
foreach($abc as $s => $v){
$rr[$v[1]]=$r[$v[0]];
if($v[0]!=$abc[1][$v[0]]){
$rr[$v[1]]=$r[$v[0]];
}
}
⑶ java編譯後 產生兩個class文件 怎麼調用
後面的一個是前面的一個類產生的內部類,應該調用前面的一個類,前面的一個類會自動調用後面的一個的:
你可以輸入 :java chatclient
就可以運行了
⑷ java中怎麼編譯不同文件夾但是相互有關的文件啊
這就是類路徑(classpath)問題,樓主肯定還不是很明白包、類路徑、import的作用。
簡單的說下:
package是用來組織類的,確保類的唯一性;
classpath是提供給javac、java等工具使用的,用來查找載入相關需要的類;
import是用來在類中導入相關類,提供一種簡單的書寫形式;
如果b.java的package是aa.bb.cc,且編譯後的b.class在f:\aa\bb\cc下,那麼其classpath就是f:\ ,不在包aa.bb.cc下的其他類引用b.class,如a.java,就要這樣aa.bb.cc.b 或 import aa.bb.cc.b 來使用b類,在編譯a.java時需要指定類路徑f:\ ,javac -cp .;f:\ a.java (其中的 .; 在JDK5+是可選的,它表是的是當前路徑) ;
再假設b.java沒有package,那麼在a.java中使用b類,無需import語句;但classpath就是f:\aa\bb\cc\;這樣在編譯a.java時指定類路徑f:\aa\bb\cc,javac -cp .;f:\aa\bb\cc a.java;
歸類就是:如果類指定了package,class文件就必須在package下,而classpath就是根包名所在路徑;如上面指定b.java的package是aa.bb.cc,那麼b.class必須在aa\bb\cc下,classpath 就是aa目錄所在的路徑f:\,編譯其它使用了b類但不在包aa.bb.cc下的類 就需要告訴編譯器b類的classpath ;
⑸ 如何用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函數)。
⑹ 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編譯兩個源文件,提示找不到符號
不知道你調用的這個類有沒有引用,import 類的路徑和類名字
⑻ 一個java編譯生成兩個class是怎麼回事,怎樣改只生成一個class文件
如果你的類裡麵包含內部類,就會在編譯後出現兩個。另一個是類名加上$符號後再加上內部類的名字。
一個class就是把內部類去掉就好了。
⑼ java:在控制台下怎麼編譯包含2個包下的文件
import 文件夾2.**;
編譯java文件用javac **.java
然後再輸入java **