windows命令行中java和javac、javap使用詳解(java編譯命令)
如題,首先我們在桌面,開始->運行->鍵入cmd 回車,進入windows命令行。進入如圖所示的畫面:

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

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

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

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

這是因為,大部分的教材使用的類是默認包名的,即源文件的第一行是沒有package指定包名的。使用一個類,我們知道,是需要使用它的全限定類名的。
所以,我們在命令行輸入:java com/stopTalking/test/JavacTest,便可看到正確的結(jié)果了:

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

相關(guān)文章
javaweb實現(xiàn)百度GPS定位接口(經(jīng)緯度)
這篇文章主要介紹了javaweb實現(xiàn)百度GPS定位接口(經(jīng)緯度),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02
SpringBoot整合達夢數(shù)據(jù)庫的教程詳解
這篇文章主要給大家介紹了SpringBoot整合達夢數(shù)據(jù)庫的詳細教程,文章中有詳細的圖片介紹和代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下2023-08-08
java中MultipartFile和File最簡單的互相轉(zhuǎn)換示例
這篇文章主要給大家介紹了關(guān)于java中MultipartFile和File最簡單的互相轉(zhuǎn)換的相關(guān)資料,MultipartFile和File都是Java中用于處理文件上傳的類,MultipartFile用于處理上傳的文件,File用于處理本地磁盤上的文件,需要的朋友可以參考下2023-09-09
MyBatis開發(fā)Dao層的兩種方式實現(xiàn)(原始Dao層開發(fā))
這篇文章主要介紹了MyBatis開發(fā)Dao層的兩種方式實現(xiàn)(原始Dao層開發(fā)),并對數(shù)據(jù)庫進行增刪查改,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
關(guān)于Java Interface接口的簡單練習題
這篇文章主要給大家分享的是關(guān)于Java Interface接口的簡單練習題,難度不算大,但是要有一個清晰的邏輯建立接口和鏈接Java類。下面來看看文章的詳細介紹吧,需要的朋友可以參考一下2021-11-11

