Java编译和运行的命令
1.3 Java编译和运行的命令
1.3.1 Java编译和运行的基础概念
-
源代码文件(.java):
- 这是你写的Java代码,文件扩展名是
.java
。
- 这是你写的Java代码,文件扩展名是
-
字节码文件(.class):
- 这是经过编译后的文件,Java虚拟机(JVM)可以理解和执行的代码,文件扩展名是
.class
。
- 这是经过编译后的文件,Java虚拟机(JVM)可以理解和执行的代码,文件扩展名是
1.3.2 基本步骤
1. 编译Java代码
编译的意思是把你写的源代码转换成JVM可以理解的字节码。使用javac
命令来完成这个步骤。
-
假设你有一个文件叫
HelloWorld.java
,里面写着:public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
-
要编译这个文件,你需要在命令行(或终端)中输入:
javac HelloWorld.java
执行完这条命令后,目录中会生成一个
HelloWorld.class
文件。
2. 运行编译后的代码
运行的意思是让JVM执行编译好的字节码。使用java
命令来完成这个步骤。
-
继续上面的例子,编译之后,我们得到了
HelloWorld.class
文件。 -
现在,在命令行中输入:
java HelloWorld
这时,屏幕上会显示:
Hello, World!
1.3.3 详细解释
-
javac HelloWorld.java
:javac
是Java编译器,它读取你写的Java源代码并检查语法错误。如果一切正常,它会生成一个或多个.class
文件。HelloWorld.java
是你要编译的源文件。
-
java HelloWorld
:java
是Java的运行时命令,它启动JVM并执行指定的字节码。HelloWorld
是你要运行的类的名字,不需要加.class
。
1.3.4 常见问题
- 文件名和类名必须一致:
- 在Java中,公共类的名字必须和文件名一致。例如,如果类名是
HelloWorld
,文件名必须是HelloWorld.java
。
- 编译错误:
- 如果在编译过程中出现错误,
javac
会告诉你在哪行代码有问题以及是什么问题。你需要修正错误,然后重新编译。
-
类路径(classpath):
-
有时,你的程序需要用到其他的库或类文件。你可以使用
-cp
选项来指定这些库或类文件的位置。例如:javac -cp someLibrary.jar HelloWorld.java java -cp someLibrary.jar:. HelloWorld
-
1.3.5 常用Java命令
-
javac
javac命令用于将Java源代码编译成Java字节码文件(.class文件),以便在Java虚拟机(JVM)上运行。
基本语法
javac [options] source_file(s)
使用示例
javac HelloWorld.java
参数说明
-
options:javac命令提供了多个选项来控制编译过程和生成的字节码文件的行为。可以使用javac -help查看所有选项及其说明。
-
source_file(s):指定要编译的源代码文件的路径。可以使用通配符(*)来编译整个文件夹中的所有Java文件。例如,javac *.java会同时编译当前目录中的所有Java文件。
常见选项
-
-d directory:指定编译生成的.class文件的输出目录。
-
-classpath path:指定可供编译器使用的类路径。
-
-source version:指定要编译的Java源代码的版本(例如,-source 8表示使用Java 8的语言功能进行编译)。
-
-target version:指定要生成的字节码文件的Java版本(例如,-target 1.8表示要生成适用于Java 8的字节码文件)。
-
-Xlint:启用编译器警告消息。
-
-verbose:显示编译器的详细输出信息。
javac命令是编写和编译Java代码的必备工具之一。掌握其用法可以帮助开发人员更好地进行Java开发和调试。
-
java
java命令用于启动Java虚拟机并执行Java程序。使用java命令可以在命令行中直接运行编译后的Java程序。
基本语法
java [options] class [args...]
使用示例
java HelloWorld
参数说明
-
options:Java命令提供了多个选项来控制Java虚拟机和应用程序的行为。可以使用java -help查看所有选项及其说明。
-
class:要运行的Java类名。
-
args…:传递给主方法的参数。这些参数将作为字符串数组传递给main()方法。
常见选项
-
-classpath path:指定Java虚拟机应该搜索类文件的路径。与javac编译器选项-cp相同。
-
-Xmx size:指定堆大小的最大值,以字节为单位。例如,-Xmx1024m表示堆大小的最大值为1024 MB。
-
-Xms size:指定初始堆大小,以字节为单位。
-
-version:查看Java版本信息。
-
-jar file:执行指定的JAR文件。
-
-Dproperty=value:设置系统属性。例如,-Djava.awt.headless=true表示启用无头模式。
java命令是Java开发和调试的重要工具之一。熟练掌握其用法可以帮助开发人员更好地编写和运行Java程序。
-
jar
jar命令用于创建和管理JAR格式的归档文件,也可以用于解压缩包和对JAR文件进行签名等操作。
基本语法
jar [options] archive_file file(s)
使用示例
jar cf myJar.jar *.class
参数说明
-
options:jar命令提供了多个选项来控制生成的JAR文件的内容和行为。可以使用jar -help查看所有选项及其说明。
-
archive_file:生成的JAR文件的名称。
-
file(s):需要添加到JAR文件中的文件或目录列表。
常见选项
-
c:表示新建一个JAR文件。
-
f:指定JAR文件的文件名以及可选路径
-
v:输出生成过程中处理的文件列表。
-
m:表示需要保留manifest文件。
-
x:从JAR文件中提取指定的文件。
-
t:列出JAR文件中存储的文件。
-
u: 更新现有的JAR文件中的文件。
-
i:为已有的JAR文件创建索引文件
使用jar命令还可以对JAR文件进行签名,以提高应用程序的安全性,防止被篡改。此外,在发布Java程序时,将代码打包成一个JAR文件也是很常见的做法,以便简化部署和分发过程。
jar命令是Java开发和部署的重要工具之一。熟练掌握其用法可以帮助开发人员更好地管理JAR文件和Java程序的部署。