java_command
在Java中,编译和运行程序涉及几个主要命令,包括
javac(编译器)、java(运行器)以及其他辅助命令。以下是最常用的Java编译和运行命令:
1. 编写Java源代码
首先你需要一个Java源文件,例如,创建一个名为HelloWorld.java的文件,内容如下:
1 | |
2. 编译Java程序
使用javac命令编译Java源文件。该命令会将.java文件编译为Java字节码,并生成相应的.class文件。
1 | |
执行后会生成HelloWorld.class文件,这就是可以由Java虚拟机(JVM)执行的字节码文件。
编译多个文件:
如果你有多个Java文件,也可以一起编译,例如:
1 | |
或者编译当前目录下的所有Java文件:
1 | |
3. 运行Java程序
使用java命令运行编译好的Java类文件:
1 | |
注意:运行Java程序时不需要加.class扩展名,只需提供类名。
4. 编译并指定输出目录
你可以通过-d选项指定编译后的.class文件的输出目录:
1 | |
这会将编译后的.class文件输出到bin目录下。
5. 设置类路径(CLASSPATH)
如果你的Java程序依赖其他库或者class文件,你需要通过-cp(或-classpath)选项指定类路径。例如:
1 | |
在这个例子中,当前目录(.)和lib/somelibrary.jar都被加入到类路径中(注意Linux使用冒号:分隔,Windows使用分号;分隔)。
6. 打包成JAR文件
你可以将Java程序打包成一个JAR文件(Java Archive),然后可以通过JVM直接运行这个JAR包。步骤如下:
创建JAR文件:
1 | |
创建可执行的JAR文件:
如果你的Java程序有main方法,可以创建一个可执行的JAR文件:
- 首先,创建一个
manifest.txt文件,指定入口点:
1 | |
- 然后执行以下命令打包JAR文件:
1 | |
- 运行JAR文件:
1 | |
打包成 JAR 文件另法
利用 jar 命令来对生成的字节码文件进行打包。
1 | |
其中 c 表示创建一个新 jar 包,v 表示创建过程中打印创建过程中的信息,f 则表示对新生成的 jar 命名。
最后,利用以下命令来运行 jar 包。
1 | |
不过并不会顺利出现我们想要的结果,此时会报错 hello.jar 中没有主清单属性。这是因为我们还没有在 MENIFEST.MF 文件中添加 Main-Class 属性。 
用压缩软件打开刚创建的 hello.jar,里边除了 HelloWorld.class 文件之外,还会多一个 META-INF 文件夹,里边还有一个 MENIFEST.MF 文件,此时我们只需要用编辑器打开该文件,然后在文件中加入以下代码。(记得添加之后要保证整个文件最后保留一行空行)
1 | |
添加完成之后,再次运行 java -jar hello.jar ,就可以成功在控制台打印 Hello World! 了。
7. 常见的JDK命令总结
javac:Java编译器,将Java源文件(.java)编译为字节码文件(.class)。1
javac HelloWorld.javajava:Java解释器,运行编译后的字节码(.class)文件。1
java HelloWorldjar:用于创建和管理JAR文件(Java归档文件),可以打包多个.class文件和其他资源。1
jar cvf HelloWorld.jar HelloWorld.classjavadoc:用于生成Java源代码的API文档。1
javadoc HelloWorld.javajavap:反编译.class文件,查看字节码或方法签名。1
javap HelloWorld
8. 调试(jdb)
如果需要调试Java程序,Java开发工具包还提供了jdb命令(Java
Debugger),用于设置断点、检查变量等:
1 | |
总结
Java程序的编译和运行过程主要使用到两个核心命令:javac(编译)和java(运行)。通过这些命令,可以编写、编译、运行Java代码。此外,jar命令允许将Java程序打包成JAR文件,javap可以反编译字节码,jdb可以调试Java程序。这些命令组合起来使得Java开发非常灵活且强大。
