java编译命令和启动命令的使用方式
作者:Lvan的前端笔记
编译命令
在 Java 开发过程中,编译 Java 源文件(通常以 .java 为扩展名)是不可或缺的一步。
这一步骤是通过 javac 命令完成的,该命令是 Java 编译器(Java Compiler)的命令行工具。
编译后的代码会生成字节码文件,这些文件以 .class 为扩展名,并可在 Java 虚拟机(JVM)上运行。
基本语法
javac [options] sourcefiles
options
:编译时可用的选项,用于调整编译器的行为。sourcefiles
:一个或多个要编译的 Java 源文件。
常用选项
-d destinationdir
此选项用于指定编译后的 .class 文件应存放的目录。
如果不使用此选项,.class 文件将默认生成在与源文件相同的目录中。
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
指定用于查找输入源文件的搜索路径。若未设置,则默认使用用户目录。
-encoding
设置源文件使用的字符编码。
javac -encoding UTF-8 src/com/example/Main.java
-verbose
输出详细的编译信息,包括编译器执行的每个步骤。
-X
启用非标准选项,这些选项可能因编译器实现的不同而有所差异。
启动命令
在 Java 开发中,启动 Java 应用程序通常使用 java 命令。
这个命令用于启动 Java 虚拟机(JVM),并加载指定的类(通常是包含 main 方法的类)来运行 Java 程序。
以下是对 java 命令的详细解释和一些常用选项的介绍。
基本语法
java [options] class [args...] 或 java [options] -jar jarfile [args...]
options
:Java 命令的可选参数,用于控制 JVM 的行为。class
:要运行的包含 main 方法的类的名称(不包括 .class 后缀)。args...
:传递给 main 方法的命令行参数。-jar
:指定接下来的参数是一个 JAR 文件,该 JAR 文件包含一个 MANIFEST.MF 文件,其中指定了入口点(即包含 main 方法的类)。jarfile
:要运行的 JAR 文件的名称。
常用选项
-classpath 或 -cp
指定搜索类文件(.class)和包(目录和 ZIP/JAR 文件)的路径。
java -cp .:lib/* com.example.MainClass
在 Windows 上,路径分隔符是 ;
,而在 UNIX/Linux/macOS 上是 :
。
-D
设置系统属性。
java -DpropertyName=propertyValue com.example.MainClass
-jar
运行 JAR 文件。
java -jar myapp.jar
-javaagent
启用 Java 代理,用于在 JVM 启动时加载代理程序。
java -javaagent:agent.jar -jar myapp.jar
-Xmx 和 -Xms
设置最大和初始堆内存大小。
java -Xmx1024m -Xms512m com.example.MainClass
-Xdebug 和 -Xrunjdwp
用于调试的选项,可以远程调试 Java 应用程序。
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar myapp.jar
-version
打印 Java 版本信息。
java -version
-verbose
提供关于类加载的详细信息。
java -verbose com.example.MainClass
-X
非标准选项,用于调试和非生产环境。这些选项可能会因 JVM 实现而异。
综合示例
假设你有一个 Java 源文件 HelloWorld.java,内容如下:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
你可以使用以下命令编译它:
javac HelloWorld.java
如果编译成功,将生成一个名为 HelloWorld.class 的字节码文件。
若要将 .class 文件输出到特定目录(例如 bin),你可以使用 -d 选项:
javac -d bin HelloWorld.java
这将在 bin 目录下创建一个与包结构相对应的目录树,并将 .class 文件放置在其中。
运行
java -jar myapp.jar
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。