java編譯命令和啟動(dòng)命令的使用方式
編譯命令
在 Java 開發(fā)過程中,編譯 Java 源文件(通常以 .java 為擴(kuò)展名)是不可或缺的一步。
這一步驟是通過 javac 命令完成的,該命令是 Java 編譯器(Java Compiler)的命令行工具。
編譯后的代碼會(huì)生成字節(jié)碼文件,這些文件以 .class 為擴(kuò)展名,并可在 Java 虛擬機(jī)(JVM)上運(yùn)行。
基本語法
javac [options] sourcefiles
options
:編譯時(shí)可用的選項(xiàng),用于調(diào)整編譯器的行為。sourcefiles
:一個(gè)或多個(gè)要編譯的 Java 源文件。
常用選項(xiàng)
-d destinationdir
此選項(xiàng)用于指定編譯后的 .class 文件應(yīng)存放的目錄。
如果不使用此選項(xiàng),.class 文件將默認(rèn)生成在與源文件相同的目錄中。
javac -d out src/com/example/Main.java
上述命令會(huì)將 Main.java 編譯后的 .class 文件放置在 out/com/example/ 目錄下。
-classpath 或 -cp
指定用于查找用戶類文件和注釋處理器的搜索路徑。
在編譯依賴于其他類的 Java 源文件時(shí),此選項(xiàng)尤為重要。
javac -cp lib/someLibrary.jar src/com/example/Main.java
-sourcepath
指定用于查找輸入源文件的搜索路徑。若未設(shè)置,則默認(rèn)使用用戶目錄。
-encoding
設(shè)置源文件使用的字符編碼。
javac -encoding UTF-8 src/com/example/Main.java
-verbose
輸出詳細(xì)的編譯信息,包括編譯器執(zhí)行的每個(gè)步驟。
-X
啟用非標(biāo)準(zhǔn)選項(xiàng),這些選項(xiàng)可能因編譯器實(shí)現(xiàn)的不同而有所差異。
啟動(dòng)命令
在 Java 開發(fā)中,啟動(dòng) Java 應(yīng)用程序通常使用 java 命令。
這個(gè)命令用于啟動(dòng) Java 虛擬機(jī)(JVM),并加載指定的類(通常是包含 main 方法的類)來運(yùn)行 Java 程序。
以下是對(duì) java 命令的詳細(xì)解釋和一些常用選項(xiàng)的介紹。
基本語法
java [options] class [args...] 或 java [options] -jar jarfile [args...]
options
:Java 命令的可選參數(shù),用于控制 JVM 的行為。class
:要運(yùn)行的包含 main 方法的類的名稱(不包括 .class 后綴)。args...
:傳遞給 main 方法的命令行參數(shù)。-jar
:指定接下來的參數(shù)是一個(gè) JAR 文件,該 JAR 文件包含一個(gè) MANIFEST.MF 文件,其中指定了入口點(diǎn)(即包含 main 方法的類)。jarfile
:要運(yùn)行的 JAR 文件的名稱。
常用選項(xiàng)
-classpath 或 -cp
指定搜索類文件(.class)和包(目錄和 ZIP/JAR 文件)的路徑。
java -cp .:lib/* com.example.MainClass
在 Windows 上,路徑分隔符是 ;
,而在 UNIX/Linux/macOS 上是 :
。
-D
設(shè)置系統(tǒng)屬性。
java -DpropertyName=propertyValue com.example.MainClass
-jar
運(yùn)行 JAR 文件。
java -jar myapp.jar
-javaagent
啟用 Java 代理,用于在 JVM 啟動(dòng)時(shí)加載代理程序。
java -javaagent:agent.jar -jar myapp.jar
-Xmx 和 -Xms
設(shè)置最大和初始堆內(nèi)存大小。
java -Xmx1024m -Xms512m com.example.MainClass
-Xdebug 和 -Xrunjdwp
用于調(diào)試的選項(xiàng),可以遠(yuǎn)程調(diào)試 Java 應(yīng)用程序。
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar myapp.jar
-version
打印 Java 版本信息。
java -version
-verbose
提供關(guān)于類加載的詳細(xì)信息。
java -verbose com.example.MainClass
-X
非標(biāo)準(zhǔn)選項(xiàng),用于調(diào)試和非生產(chǎn)環(huán)境。這些選項(xiàng)可能會(huì)因 JVM 實(shí)現(xiàn)而異。
綜合示例
假設(shè)你有一個(gè) Java 源文件 HelloWorld.java,內(nèi)容如下:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
你可以使用以下命令編譯它:
javac HelloWorld.java
如果編譯成功,將生成一個(gè)名為 HelloWorld.class 的字節(jié)碼文件。
若要將 .class 文件輸出到特定目錄(例如 bin),你可以使用 -d 選項(xiàng):
javac -d bin HelloWorld.java
這將在 bin 目錄下創(chuàng)建一個(gè)與包結(jié)構(gòu)相對(duì)應(yīng)的目錄樹,并將 .class 文件放置在其中。
運(yùn)行
java -jar myapp.jar
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用JFrame完成動(dòng)態(tài)模擬時(shí)鐘
本文介紹了如何使用JFrame完成動(dòng)態(tài)模擬時(shí)鐘,需要的朋友可以參考下2015-08-08Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(一)之MyBatis的基礎(chǔ)知識(shí)
這篇文章主要介紹了Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(一)之MyBatis的基礎(chǔ)知識(shí),需要的朋友可以參考下2017-05-05Spring通過工具類實(shí)現(xiàn)獲取容器中的Bean
在實(shí)際開發(fā)中,我們往往要用到Spring容器為我們提供的諸多資源,例如想要獲取到容器中的配置、獲取到容器中的Bean等等。本文為大家詳細(xì)講講工具類如何獲取到Spring容器中的Bean,需要的可以參考一下2022-06-06jstl之map,list訪問遍歷以及el表達(dá)式map取值的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猨stl之map,list訪問遍歷以及el表達(dá)式map取值的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03java構(gòu)建Stream流的多種方式總結(jié)
Java?8引入了Stream流作為一項(xiàng)新的特性,它是用來處理集合數(shù)據(jù)的一種函數(shù)式編程方式,本文為大家整理了多種java構(gòu)建Stream流的方式,希望對(duì)大家有所幫助2023-11-11