java教程之java程序編譯運(yùn)行圖解(java程序運(yùn)行)
首先我們?cè)谧烂?,開始->運(yùn)行->鍵入cmd 回車,進(jìn)入windows命令行。進(jìn)入如圖所示的畫面:

可知,當(dāng)前默認(rèn)目錄為C盤Users文件夾下的Administrator文件夾。一般而言,我們習(xí)慣改變當(dāng)前目錄。由于windows有磁盤分區(qū),若要跳到其他磁盤,例如E盤,有幾種方法:
1、輸入命令: pushd 路徑(此命令可將當(dāng)前目錄設(shè)為所希望的任一個(gè)已存在的路徑)
2、輸入命令: e: 轉(zhuǎn)移到e盤,然后再輸入 cd 轉(zhuǎn)移到所希望的已知路徑。
如圖:

希望在windows命令行下使用javac、java、javap等命令,那么當(dāng)前電腦必須安裝了jdk,并且將jdk的bin目錄添加到環(huán)境變量path下了。這個(gè)不用多說。那么讓我們看一下如何使用javac、java、javap吧。
一、javac
javac是用來編譯.java文件的。命令行下直接輸入javac可以看到大量提示信息,提示javac命令的用法,我只知道常用的。
javac -d destdir srcFile
其中:1、-d destdir是用來指定存放編譯生成的.class文件的路徑。(若此選項(xiàng)省略,那么默認(rèn)在當(dāng)前目錄下生成.class文件,并且沒有生成包文件夾;當(dāng)前目錄可以用“.”來表示,即:javac -d . srcFile )
注意:添加-d選項(xiàng)除了可以指定編譯生成的.class文件的路徑外,最大的區(qū)別是可以將源文件首行的package關(guān)鍵字下的包名在當(dāng)前路徑下生成文件夾。
2、srcFile是源文件.java文件的路徑。
例如:有這樣一個(gè)簡(jiǎn)單的java類,路徑為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 + "]");
}
}
當(dāng)前路徑下,輸入 javac JavacTest.java ,便在當(dāng)前路徑下生成了一個(gè)JavacTest.class的文件,如圖:

注意:JavacTest.java是一個(gè)首行標(biāo)注了package的java文件,而此時(shí)它在硬盤上的目錄并未對(duì)應(yīng)它的包名,所以,使用java com.stopTalking.test.JavacTest運(yùn)行時(shí)是無法找到該java的。
若輸入,javac –d . JavacTest.java ,那么生成的JavacTest.class便在當(dāng)前目錄下生成的包文件中了,如圖:

二、java
此時(shí),我們希望運(yùn)行該類,在大部分的教材中,使用java JavacTest便可直接運(yùn)行,可是我們發(fā)現(xiàn)出現(xiàn)這樣的錯(cuò)誤:

這是因?yàn)椋蟛糠值慕滩氖褂玫念愂悄J(rèn)包名的,即源文件的第一行是沒有package指定包名的。使用一個(gè)類,我們知道,是需要使用它的全限定類名的。
所以,我們?cè)诿钚休斎耄簀ava com/stopTalking/test/JavacTest,便可看到正確的結(jié)果了:

總結(jié):使用簡(jiǎn)單的java命令運(yùn)行一個(gè).class文件,不僅需要使用該類的全限定類名,而且需要在當(dāng)前路徑下有該類的包層次文件夾。這必須要求編譯時(shí)使用-d選項(xiàng)。否則需要自己來建立包層次文件夾。
三、javap
javap主要用于幫助開發(fā)者深入了解Java編譯器的機(jī)制,主要選項(xiàng)有:
-c 分解方法代碼,即顯示每個(gè)方法具體的字節(jié)碼
-public | protected | package | private 用于指定顯示哪種級(jí)別的類成員
-verbose 指定顯示更進(jìn)一步的詳細(xì)信息
輸入 javap -c com/stopTalking/test/JavacTest,顯示如圖:

相關(guān)文章
Java實(shí)現(xiàn)Excel批量導(dǎo)入數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)Excel批量導(dǎo)入數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
Java中實(shí)現(xiàn)文件上傳下載的三種解決方案(推薦)
這篇文章主要介紹了Java中實(shí)現(xiàn)文件上傳下載的三種解決方案的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
解決springboot mapper注入報(bào)紅問題
這篇文章主要介紹了解決springboot mapper注入報(bào)紅問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringCloud-Gateway網(wǎng)關(guān)的使用實(shí)例教程
Gateway網(wǎng)關(guān)在微服務(wù)架構(gòu)中扮演了不可或缺的角色,通過集中化管理、智能路由和強(qiáng)大的過濾器機(jī)制,為構(gòu)建高效、可擴(kuò)展的微服務(wù)系統(tǒng)提供了有力支持,這篇文章主要介紹了SpringCloud-Gateway網(wǎng)關(guān)的使用,需要的朋友可以參考下2024-03-03
javaweb實(shí)戰(zhàn)之商城項(xiàng)目開發(fā)(三)
這篇文章主要針對(duì)javaweb商城項(xiàng)目開發(fā)進(jìn)行實(shí)戰(zhàn)演習(xí),主要實(shí)現(xiàn)通用的BaseDao.java和使用resultMap映射關(guān)聯(lián)對(duì)象,感興趣的小伙伴們可以參考一下2016-02-02

