java編譯命令和啟動命令的使用方式
編譯命令
在 Java 開發(fā)過程中,編譯 Java 源文件(通常以 .java 為擴(kuò)展名)是不可或缺的一步。
這一步驟是通過 javac 命令完成的,該命令是 Java 編譯器(Java Compiler)的命令行工具。
編譯后的代碼會生成字節(jié)碼文件,這些文件以 .class 為擴(kuò)展名,并可在 Java 虛擬機(jī)(JVM)上運行。
基本語法
javac [options] sourcefiles
options:編譯時可用的選項,用于調(diào)整編譯器的行為。sourcefiles:一個或多個要編譯的 Java 源文件。
常用選項
-d destinationdir
此選項用于指定編譯后的 .class 文件應(yīng)存放的目錄。
如果不使用此選項,.class 文件將默認(rèn)生成在與源文件相同的目錄中。
javac -d out src/com/example/Main.java
上述命令會將 Main.java 編譯后的 .class 文件放置在 out/com/example/ 目錄下。
-classpath 或 -cp
指定用于查找用戶類文件和注釋處理器的搜索路徑。
在編譯依賴于其他類的 Java 源文件時,此選項尤為重要。
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í)行的每個步驟。
-X
啟用非標(biāo)準(zhǔn)選項,這些選項可能因編譯器實現(xiàn)的不同而有所差異。
啟動命令
在 Java 開發(fā)中,啟動 Java 應(yīng)用程序通常使用 java 命令。
這個命令用于啟動 Java 虛擬機(jī)(JVM),并加載指定的類(通常是包含 main 方法的類)來運行 Java 程序。
以下是對 java 命令的詳細(xì)解釋和一些常用選項的介紹。
基本語法
java [options] class [args...] 或 java [options] -jar jarfile [args...]
options:Java 命令的可選參數(shù),用于控制 JVM 的行為。class:要運行的包含 main 方法的類的名稱(不包括 .class 后綴)。args...:傳遞給 main 方法的命令行參數(shù)。-jar:指定接下來的參數(shù)是一個 JAR 文件,該 JAR 文件包含一個 MANIFEST.MF 文件,其中指定了入口點(即包含 main 方法的類)。jarfile:要運行的 JAR 文件的名稱。
常用選項
-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
運行 JAR 文件。
java -jar myapp.jar
-javaagent
啟用 Java 代理,用于在 JVM 啟動時加載代理程序。
java -javaagent:agent.jar -jar myapp.jar
-Xmx 和 -Xms
設(shè)置最大和初始堆內(nèi)存大小。
java -Xmx1024m -Xms512m com.example.MainClass
-Xdebug 和 -Xrunjdwp
用于調(diào)試的選項,可以遠(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)選項,用于調(diào)試和非生產(chǎn)環(huán)境。這些選項可能會因 JVM 實現(xiàn)而異。
綜合示例
假設(shè)你有一個 Java 源文件 HelloWorld.java,內(nèi)容如下:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}你可以使用以下命令編譯它:
javac HelloWorld.java
如果編譯成功,將生成一個名為 HelloWorld.class 的字節(jié)碼文件。
若要將 .class 文件輸出到特定目錄(例如 bin),你可以使用 -d 選項:
javac -d bin HelloWorld.java
這將在 bin 目錄下創(chuàng)建一個與包結(jié)構(gòu)相對應(yīng)的目錄樹,并將 .class 文件放置在其中。
運行
java -jar myapp.jar
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?中的?getDeclaredFields()使用與原理解析
在Java反射機(jī)制中,getDeclaredFields()用于獲取類的所有字段,包括私有字段,通過反射,可以在運行時動態(tài)地獲取類的信息并操作其成員,本文詳細(xì)介紹了getDeclaredFields()的使用方法、工作原理以及最佳實踐,涵蓋了反射的基本概念、使用場景和注意事項,感興趣的朋友一起看看吧2025-01-01
Java JDBC連接Kerberos認(rèn)證的HIVE和Impala方式
本文主要介紹了HiveJDBC和ImpalaJDBC的使用方法,包括版本對應(yīng)、Maven安裝、主機(jī)名配置、端口開通、JDBC連接和Kerberos認(rèn)證等2025-02-02
聊聊@RequestMapping和@GetMapping @PostMapping的區(qū)別
這篇文章主要介紹了@RequestMapping和@GetMapping及@PostMapping的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java從網(wǎng)絡(luò)讀取圖片并保存至本地實例
這篇文章主要為大家詳細(xì)介紹了Java從網(wǎng)絡(luò)讀取圖片并保存至本地的實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
Java異常java.lang.UnsatisfiedLinkError: no opencv_ja
這篇文章主要介紹了Java異常java.lang.UnsatisfiedLinkError: no opencv_java320 in java.library.path的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Java如何獲取一個隨機(jī)數(shù) Java猜數(shù)字小游戲
這篇文章主要為大家詳細(xì)介紹了Java如何獲取一個隨機(jī)數(shù),類似猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03
Java中Date數(shù)據(jù)類型的數(shù)值轉(zhuǎn)換方式
這篇文章主要介紹了Java中Date數(shù)據(jù)類型的數(shù)值轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
Java求字符串中出現(xiàn)次數(shù)最多的字符串以及出現(xiàn)次數(shù)
這篇文章主要為大家詳細(xì)介紹了Java統(tǒng)計字符串中出現(xiàn)次數(shù)最多的字符串以及出現(xiàn)次數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04

