對(duì)單個(gè)*java文件進(jìn)行編譯的方法是利用javac工具。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比集賢網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式集賢網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋集賢地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
1. 編寫Hellworld.java源碼
新建一個(gè)Hellworld的java文件,代碼如下:
package com.csdn.test;
public class Say {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("hello,world!");
}
}
2、編譯Hellworld.java源碼
執(zhí)行javac命令編譯源代碼,下面得藍(lán)色部分說明javac執(zhí)行成功了,并在當(dāng)前目錄下生成了Say.class文件,如下:
Microsoft Windows [版本 6.1.7600]
版權(quán)所有 (c) 2009 Microsoft Corporation。保留所有權(quán)利。
C:/Users/Administratord:
D:/cd temp
D:/tempjavac Hellworld.java
InputStreamReader in = new InputStreamReader(new FileInputStream(“demo.txt”),”UTF-8”);
給InputStreamReader指定解碼編碼,這樣二者統(tǒng)一就不會(huì)出現(xiàn)亂碼了。
下面說說字符輸出流。
字符輸出流的原理和字符輸入流的原理一樣,也可以看做是包裝流,其底層還是采用字節(jié)輸出流來寫文件。只是字符輸出流根據(jù)指定的編碼將字符轉(zhuǎn)換為字節(jié)的。字符輸出流的主要類是:OutputStreamWriter。Java api解釋如下:OutputStreamWriter 是字符流通向字節(jié)流的橋梁:使用指定的 charset 將要向其寫入的字符編碼為字節(jié)。它使用的字符集可以由名稱指定或顯式給定,否則可能接受平臺(tái)默認(rèn)的字符集。說的很明白了,它需要一個(gè)編碼將寫入的字符轉(zhuǎn)換為字節(jié),如果沒有指定則采用GBK編碼,那么輸出的字節(jié)都將是GBK編碼,生成的文件也是GBK編碼的。如果采用以下方式構(gòu)造OutputStreamWriter:
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(“dd.txt”),”UTF-8”);
那么寫入的字符將被編碼為UTF-8的字節(jié),生成的文件也將是UTF-8格式的。
問題二: 既然讀文件要使用和文件編碼一致的編碼,那么javac編譯文件也需要讀取文件,它使用什么編碼呢?
這個(gè)問題從來就沒想過,也從沒當(dāng)做是什么問題。正是因?yàn)閱栴}一而引發(fā)的思考,其實(shí)這里還是有東西可以挖掘的。下面分三種情況來探討,這三種情況也是我們常用的編譯java源文件的方法。
1.javac在控制臺(tái)編譯java類文件。
通常我們手動(dòng)建立一個(gè)java文件Demo.java,并保存。此時(shí)Demo.java文件的編碼為ANSI,中文操作系統(tǒng)下就是GBK.然后使用javac命令來編譯該源文件。”javac Demo.java”。Javac也需要讀取java文件,那么javac是使用什么編碼來解碼我們讀取的字節(jié)呢?其實(shí)javac采用了操作系統(tǒng)默認(rèn)的GBK編碼解碼我們讀取的字節(jié),這個(gè)編碼正好也是Demo.java文件的編碼,二者一致,所以不會(huì)出現(xiàn)亂碼情況。讓我們來做點(diǎn)手腳,在保存Demo.java文件時(shí),我們選擇UTF-8保存。此時(shí)Demo.java文件編碼就是UTF-8了。我們?cè)偈褂谩眏avac Demo.java”來編譯,如果Demo.java里含有中文字符,此時(shí)控制臺(tái)會(huì)出現(xiàn)警告信息,也出現(xiàn)了亂碼。究其原因,就是因?yàn)閖avac采用了GBK編碼解碼我們讀取的字節(jié)。因?yàn)槲覀兊淖止?jié)是UTF-8編碼的,所以會(huì)出現(xiàn)亂碼。如果不信的話你可以自己試試。那么解決辦法呢?解決辦法就是使用javac的encoding參數(shù)來制定我們的解碼編碼。如下:javac -encoding UTF-8 Demo.java。這里我們指定了使用UTF-8來解碼讀取的字節(jié),由于這個(gè)編碼和Demo.java文件編碼一致,所以不會(huì)出現(xiàn)亂碼情況了。
2.Eclipse中編譯java文件。
我習(xí)慣把Eclipse的編碼設(shè)置成UTF-8。那么每個(gè)項(xiàng)目中的java源文件的編碼就是UTF-8。這樣編譯也從沒有問題,也沒有出現(xiàn)過亂碼。正是因?yàn)檫@樣才掩蓋了使用javac可能出現(xiàn)的亂碼。那么Eclipse是如何正確編譯文件編碼為UTF-8的java源文件的呢?唯一的解釋就是Eclipse自動(dòng)識(shí)別了我們java源文件的文件編碼,然后采取了正確的encoding參數(shù)來編譯我們的java源文件。功勞都?xì)w功于IDE的強(qiáng)大了。
3.使用Ant來編譯java文件。
Ant也是我常用的編譯java文件的工具。首先,必須知道Ant在后臺(tái)其實(shí)也是采用javac來編譯java源文件的,那么可想而知,1會(huì)出現(xiàn)的問題在Ant中也會(huì)存在。如果我們使用Ant來編譯UTF-8編碼的java源文件,并且不指定如何編碼,那么也會(huì)出現(xiàn)亂碼的情況。所以Ant的編譯命令有一個(gè)屬性” encoding”允許我們指定編碼,如果我們要編譯源文件編碼為UTF-8的java文件,那么我們的命令應(yīng)該如下:
指定了編碼也就相當(dāng)于”javac –encoding”了,所以不會(huì)出現(xiàn)亂碼了。
1.建文本文檔,輸入自己的java程序。
2.然后另存為一個(gè)java文件。
1.選擇文件---另存為---名稱為“HelloDate.java”-----選擇“所有文件”。
2.記住自己這個(gè)文件的存儲(chǔ)位置。(方便調(diào)用哦!)
3.打開程序----附件---命令提示符。
4.java文本保存在了F:/java/(在F盤下的java文件夾里)下,所以如果要想編譯,就需要先通過命令提示符進(jìn)入java這個(gè)文件夾,具體步驟如下:
1.進(jìn)入F盤:輸入【F:】,然后按下回車鍵【Enter】
2.輸入【cd java】,按下回車鍵【Enter】
這樣就已經(jīng)進(jìn)入了。這里的cd的意思就是進(jìn)入的意思。
5.緊接著調(diào)用java編譯器進(jìn)行編譯。
輸入【javac HelloDate。java】,然后按下回車鍵【Enter】
6.然后運(yùn)行結(jié)果。
輸入【java HelloDate】,按下回車鍵【Enter】
網(wǎng)頁(yè)標(biāo)題:編譯java源代碼的方法 java編譯器將java源程序編譯成
URL標(biāo)題:http://chinadenli.net/article4/dogcjie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、Google、外貿(mào)建站、域名注冊(cè)、建站公司、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)