- 相關(guān)推薦
2016年java編譯命令詳解
最近小編重新復習了一下java基礎,這里便講講對于一個(gè)類(lèi)文件如何編譯、運行、反編譯的。也讓自己加深一下印象
如題,首先我們在桌面,開(kāi)始->運行->鍵入cmd 回車(chē),進(jìn)入windows命令行。進(jìn)入如圖所示的畫(huà)面:
可知,當前默認目錄為C盤(pán)Users文件夾下的Administrator文件夾。一般而言,我們習慣改變當前目錄。由于windows有磁盤(pán)分區,若要跳到其他磁盤(pán),例如E盤(pán),有幾種方法:
1、輸入命令: pushd 路徑(此命令可將當前目錄設為所希望的任一個(gè)已存在的路徑)
2、輸入命令: e: 轉移到e盤(pán),然后再輸入 cd 轉移到所希望的已知路徑。
如圖:
希望在windows命令行下使用javac、java、javap等命令,那么當前電腦必須安裝了jdk,并且將jdk的bin目錄添加到環(huán)境變量path下了。這個(gè)不用多說(shuō)。那么讓我們看一下如何使用javac、java、javap吧。
一、javac
javac是用來(lái)編譯.java文件的。命令行下直接輸入javac可以看到大量提示信息,提示javac命令的用法,我只知道常用的。
javac -d destdir srcFile
其中:1、-d destdir是用來(lái)指定存放編譯生成的.class文件的路徑。(若此選項省略,那么默認在當前目錄下生成.class文件,并且沒(méi)有生成包文件夾;當前目錄可以用“.”來(lái)表示,即:javac -d . srcFile )
注意:添加-d選項除了可以指定編譯生成的.class文件的路徑外,最大的區別是可以將源文件首行的package關(guān)鍵字下的包名在當前路徑下生成文件夾。
2、srcFile是源文件.java文件的路徑。
例如:有這樣一個(gè)簡(jiǎn)單的java類(lèi),路徑為E:\test\JavacTest.java:
復制代碼代碼如下:
package com.stopTalking.test; public class JavacTest { public static void main(String[] args) {
byte a = 5;
short b = 6;
System.out.println("JavacTest [a=" + a + ", b=" + b + "]");
}
}
當前路徑下,輸入 javac JavacTest.java ,便在當前路徑下生成了一個(gè)JavacTest.class的文件,如圖:
注意:JavacTest.java是一個(gè)首行標注了package的java文件,而此時(shí)它在硬盤(pán)上的目錄并未對應它的包名,所以,使用java com.stopTalking.test.JavacTest運行時(shí)是無(wú)法找到該java的。
若輸入,javac –d . JavacTest.java ,那么生成的JavacTest.class便在當前目錄下生成的包文件中了,如圖:
二、java
此時(shí),我們希望運行該類(lèi),在大部分的教材中,使用java JavacTest便可直接運行,可是我們發(fā)現出現這樣的錯誤:
這是因為,大部分的教材使用的類(lèi)是默認包名的,即源文件的第一行是沒(méi)有package指定包名的。使用一個(gè)類(lèi),我們知道,是需要使用它的全限定類(lèi)名的。
所以,我們在命令行輸入:java com/stopTalking/test/JavacTest,便可看到正確的結果了:
總結:使用簡(jiǎn)單的java命令運行一個(gè).class文件,不僅需要使用該類(lèi)的全限定類(lèi)名,而且需要在當前路徑下有該類(lèi)的包層次文件夾。這必須要求編譯時(shí)使用-d選項。否則需要自己來(lái)建立包層次文件夾。
三、javap
javap主要用于幫助開(kāi)發(fā)者深入了解Java編譯器的機制,主要選項有:
-c 分解方法代碼,即顯示每個(gè)方法具體的字節碼
-public | protected | package | private 用于指定顯示哪種級別的類(lèi)成員
-verbose 指定顯示更進(jìn)一步的詳細信息
輸入 javap -c com/stopTalking/test/JavacTest,顯示如圖:
【java編譯命令詳解】相關(guān)文章:
如何編譯java程序09-28
Solaris iostat命令詳解10-17
java調用cmd命令01-29
Windows常用網(wǎng)絡(luò )命令詳解01-23
java開(kāi)發(fā)必會(huì )的Linux命令10-07
java jar 命令行參數06-04
java程序中如何調用linux命令08-27
Java基礎知識詳解12-07
java命令行參數解析201608-12