亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

windows命令行中java和javac、javap使用詳解(java編譯命令)

 更新時(shí)間:2014年03月23日 11:53:15   作者:  
最近重新復(fù)習(xí)了一下java基礎(chǔ),這里便講講對(duì)于一個(gè)類文件如何編譯、運(yùn)行、反編譯的。也讓自己加深一下印象

如題,首先我們?cè)谧烂?,開(kāi)始->運(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è)不用多說(shuō)。那么讓我們看一下如何使用javac、java、javap吧。

一、javac

javac是用來(lái)編譯.java文件的。命令行下直接輸入javac可以看到大量提示信息,提示javac命令的用法,我只知道常用的。

javac -d destdir srcFile

其中:1、-d destdir是用來(lái)指定存放編譯生成的.class文件的路徑。(若此選項(xiàng)省略,那么默認(rèn)在當(dāng)前目錄下生成.class文件,并且沒(méi)有生成包文件夾;當(dāng)前目錄可以用“.”來(lái)表示,即:javac -d . srcFile )

注意:添加-d選項(xiàng)除了可以指定編譯生成的.class文件的路徑外,最大的區(qū)別是可以將源文件首行的package關(guān)鍵字下的包名在當(dāng)前路徑下生成文件夾。

2、srcFile是源文件.java文件的路徑。

例如:有這樣一個(gè)簡(jiǎn)單的java類,路徑為E:\test\JavacTest.java:

復(fù)制代碼 代碼如下:

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í)是無(wú)法找到該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)?,大部分的教材使用的類是默認(rèn)包名的,即源文件的第一行是沒(méi)有package指定包名的。使用一個(gè)類,我們知道,是需要使用它的全限定類名的。

所以,我們?cè)诿钚休斎耄簀ava com/stopTalking/test/JavacTest,便可看到正確的結(jié)果了:

總結(jié):使用簡(jiǎn)單的java命令運(yùn)行一個(gè).class文件,不僅需要使用該類的全限定類名,而且需要在當(dāng)前路徑下有該類的包層次文件夾。這必須要求編譯時(shí)使用-d選項(xiàng)。否則需要自己來(lái)建立包層次文件夾。

三、javap

javap主要用于幫助開(kāi)發(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)文章

  • javaweb實(shí)現(xiàn)百度GPS定位接口(經(jīng)緯度)

    javaweb實(shí)現(xiàn)百度GPS定位接口(經(jīng)緯度)

    這篇文章主要介紹了javaweb實(shí)現(xiàn)百度GPS定位接口(經(jīng)緯度),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java HashMap底層實(shí)現(xiàn)原理

    Java HashMap底層實(shí)現(xiàn)原理

    HashMap在不同的JDK版本下的實(shí)現(xiàn)是不同的,在JDK1.7時(shí),HashMap 底層是通過(guò)數(shù)組+鏈表實(shí)現(xiàn)的;而在JDK1.8時(shí),HashMap底層是通過(guò)數(shù)組+鏈表或紅黑樹(shù)實(shí)現(xiàn)的,本詳細(xì)介紹了HashMap底層是如何實(shí)現(xiàn)的,需要的朋友可以參考下
    2023-05-05
  • SpringBoot整合達(dá)夢(mèng)數(shù)據(jù)庫(kù)的教程詳解

    SpringBoot整合達(dá)夢(mèng)數(shù)據(jù)庫(kù)的教程詳解

    這篇文章主要給大家介紹了SpringBoot整合達(dá)夢(mèng)數(shù)據(jù)庫(kù)的詳細(xì)教程,文章中有詳細(xì)的圖片介紹和代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-08-08
  • java中MultipartFile和File最簡(jiǎn)單的互相轉(zhuǎn)換示例

    java中MultipartFile和File最簡(jiǎn)單的互相轉(zhuǎn)換示例

    這篇文章主要給大家介紹了關(guān)于java中MultipartFile和File最簡(jiǎn)單的互相轉(zhuǎn)換的相關(guān)資料,MultipartFile和File都是Java中用于處理文件上傳的類,MultipartFile用于處理上傳的文件,File用于處理本地磁盤上的文件,需要的朋友可以參考下
    2023-09-09
  • java生成隨機(jī)圖片驗(yàn)證碼

    java生成隨機(jī)圖片驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了java生成隨機(jī)圖片驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Spring中BeanFactory解析bean詳解

    Spring中BeanFactory解析bean詳解

    本篇文章主要介紹了Spring中BeanFactory解析bean詳解 ,詳細(xì)的介紹了使用BeanFactory對(duì)bean進(jìn)行解析的實(shí)例,有興趣的可以了解一下。
    2017-04-04
  • 帶你快速搞定java并發(fā)庫(kù)

    帶你快速搞定java并發(fā)庫(kù)

    本文主要介紹了java高并發(fā)寫入用戶信息到數(shù)據(jù)庫(kù)的幾種方法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧,希望能給你帶來(lái)幫助
    2021-07-07
  • Java類加載器ClassLoader源碼層面分析講解

    Java類加載器ClassLoader源碼層面分析講解

    ClassLoader翻譯過(guò)來(lái)就是類加載器,普通的java開(kāi)發(fā)者其實(shí)用到的不多,但對(duì)于某些框架開(kāi)發(fā)者來(lái)說(shuō)卻非常常見(jiàn)。理解ClassLoader的加載機(jī)制,也有利于我們編寫出更高效的代碼。ClassLoader的具體作用就是將class文件加載到j(luò)vm虛擬機(jī)中去,程序就可以正確運(yùn)行了
    2022-09-09
  • MyBatis開(kāi)發(fā)Dao層的兩種方式實(shí)現(xiàn)(原始Dao層開(kāi)發(fā))

    MyBatis開(kāi)發(fā)Dao層的兩種方式實(shí)現(xiàn)(原始Dao層開(kāi)發(fā))

    這篇文章主要介紹了MyBatis開(kāi)發(fā)Dao層的兩種方式實(shí)現(xiàn)(原始Dao層開(kāi)發(fā)),并對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪查改,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 關(guān)于Java Interface接口的簡(jiǎn)單練習(xí)題

    關(guān)于Java Interface接口的簡(jiǎn)單練習(xí)題

    這篇文章主要給大家分享的是關(guān)于Java Interface接口的簡(jiǎn)單練習(xí)題,難度不算大,但是要有一個(gè)清晰的邏輯建立接口和鏈接Java類。下面來(lái)看看文章的詳細(xì)介紹吧,需要的朋友可以參考一下
    2021-11-11

最新評(píng)論