javacjava的簡單介紹

本文目錄一覽:

javac是什麼?

javac是Java編譯器,負責將Java源代碼轉換成字節碼文件。

javac 可以隱式編譯一些沒有在命令行中提及的源文件。用 -verbose 選項可跟蹤自動編譯。當編譯源文件時,編譯器常常需要它還沒有識別出的類型的有關信息。

javac的特點

javac具有簡單性、面向對象、分布性、解釋性、可靠、安全、平台無關、可移植性、高性能、多線程、動態性等特點。提供了異常處理機制,程序員可以把錯誤代碼放在一起,這樣可以簡化錯誤處理任務,便於恢復。不支持指針,杜絕了內存的非法訪問。

javac與java的區別是什麼?

javac 可以將java源文件編譯為class字節碼文件\x0d\x0a如 javac HelloWorld.java\x0d\x0a\x0d\x0a運行javac命令後,如果成功編譯沒有錯誤的話,會出現一個HelloWorld.class的文件。\x0d\x0a\x0d\x0ajava 可以運行class字節碼文件\x0d\x0a如 java HelloWorld\x0d\x0a\x0d\x0a注意java命令後面不要加.class

javac命令和java命令做什麼事情呢?

Java中提供了許多開發工具,這裡面就包括了javac 和 java這兩個工具。

javac命令的作用是:編譯我們編寫的源代碼文件,也就是.java文件,編譯後得到一個.class文件。

java命令的作用是:運行我們編譯後的class文件。

比如:

編寫一個Test.java文件

編譯文件,javac Test.java 得到 Test.class文件

運行文件,java Test

javac和java 有什麼區別和聯繫?

javac和java命令行中的-classpath選項

這是個很基礎的問題,但是因為基本上都是用現有的IDE工具 來開發java程序,所以很少有人意識到這一點。

javac

-classpath,設定要搜索類的路徑,可以是目錄,jar文件,zip文件(裡面都是class文件),會覆蓋掉所有在CLASSPATH裡面的設定。

-sourcepath, 設定要搜索編譯所需java 文件的路徑,可以是目錄,jar文件,zip文件(裡面都是java文件)。

所以一個完整的javac命令行應該是這樣的,

假設abc.java在路徑c:\src裡面,在任何的目錄的都可以執行以下命令來編譯。

javac -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip -sourcepath c:\source\project1\src;c:\source\project2 \lib\src.jar;c:\source\project3\lib\src.zip c:\src\abc.java

表示編譯需要c:\classed下面的class文件,c:\jar\abc.jar裡面的class文件,c:\zip\abc.zip裡面的class文件

還需要c:\source\project1\src下面的源文件,c:\source\project2 \lib\src.jar裡面的源文件,c:\source\project3\lib\src.zip裡面的源文件,

注意:jar,zip裡面的源文件不會有什麼改動,目錄下的源文件,有可能會被重新編譯。

java

-classpath, 設定要搜索的類的路徑,可以是目錄,jar文件,zip文件(裡面都是class文件),會覆蓋掉所有的CLASSPATH的設定。

由於所要執行的類也是要搜索的類的一部分,所以一定要把這個類的路徑也放到-classpath的設置裡面。

表現在,在要執行的類的路徑裡面執行java時,一定要添加上點號(.)標示本目錄也要搜索。

假設abc.class在路徑c:\src裡面

可以在任何路徑下執行以下命令

java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;c:\src abc

問題:如果main.class屬於c:\jar\abc.jar,並且在com.cnblogs.jeffchen這個包里,那麼執行java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;com.cnblogs.jeffchen.main即可, 但是如果classpath中包含多個jar包呢?並且其他jar包中也有com.cnblogs.jeffchen會發生什麼情況?錯誤?

在windows下,

文件路徑的分割符為反斜杠 \

類或者java文件列表的分割符為分號 ;

在linux下

文件路徑的分隔符位斜杠 /

類或者java文件列表的分隔符為冒號 :

一個linux下編譯和運行的例子

/usr/local/java/bin/javac -classpath /tmp/javatest/lib/mail-1.3.3.jar -d /tmp/javatest/bin/ /tmp/javatest/src/jp/co/realseed/Capability.java

/usr/local/java/bin/java -classpath /tmp/javatest/lib/mail-1.3.3.jar:/tmp/javatest/bin/ jp.co.realseed.Capability

javac與java的區別

javac用來編譯java文件,java用來執行。

1,javac命令用來編譯java文件,例如編寫一個Test.java文件,使用javac Test.java可以執行編譯操作,將生成一個Test.class文件。

2,java命令可以執行生成的class文件,使用java Test可以執行編寫的代碼。

原創文章,作者:KIGA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/132779.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KIGA的頭像KIGA
上一篇 2024-10-03 23:54
下一篇 2024-10-03 23:54

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27
  • Guava Limiter——限流器的簡單易用

    本文將從多個維度對Guava Limiter進行詳細闡述,介紹其定義、使用方法、工作原理和案例應用等方面,並給出完整的代碼示例,希望能夠幫助讀者更好地了解和使用該庫。 一、定義 G…

    編程 2025-04-27
  • 2的32次方-1:一個看似簡單卻又複雜的數字

    對於計算機領域的人來說,2的32次方-1(也就是十進制下的4294967295)這個數字並不陌生。它經常被用來表示IPv4地址或者無符號32位整數的最大值。但實際上,這個數字卻包含…

    編程 2025-04-27
  • 製作一個簡單的管理系統的成本及實現

    想要製作一個簡單的管理系統,需要進行技術選型、開發、測試等過程,那麼這個過程會花費多少錢呢?我們將從多個方面來闡述製作一個簡單的管理系統的成本及實現。 一、技術選型 當我們開始思考…

    編程 2025-04-27

發表回復

登錄後才能評論