java_command

在Java中,编译和运行程序涉及几个主要命令,包括 javac(编译器)、java(运行器)以及其他辅助命令。以下是最常用的Java编译和运行命令:

1. 编写Java源代码

首先你需要一个Java源文件,例如,创建一个名为HelloWorld.java的文件,内容如下:

1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

2. 编译Java程序

使用javac命令编译Java源文件。该命令会将.java文件编译为Java字节码,并生成相应的.class文件。

1
javac HelloWorld.java

执行后会生成HelloWorld.class文件,这就是可以由Java虚拟机(JVM)执行的字节码文件。

编译多个文件:

如果你有多个Java文件,也可以一起编译,例如:

1
javac File1.java File2.java

或者编译当前目录下的所有Java文件:

1
javac *.java

3. 运行Java程序

使用java命令运行编译好的Java类文件:

1
java HelloWorld

注意:运行Java程序时不需要加.class扩展名,只需提供类名。

4. 编译并指定输出目录

你可以通过-d选项指定编译后的.class文件的输出目录:

1
javac -d bin HelloWorld.java

这会将编译后的.class文件输出到bin目录下。

5. 设置类路径(CLASSPATH)

如果你的Java程序依赖其他库或者class文件,你需要通过-cp(或-classpath)选项指定类路径。例如:

1
java -cp .:lib/somelibrary.jar HelloWorld

在这个例子中,当前目录(.)和lib/somelibrary.jar都被加入到类路径中(注意Linux使用冒号:分隔,Windows使用分号;分隔)。

6. 打包成JAR文件

你可以将Java程序打包成一个JAR文件(Java Archive),然后可以通过JVM直接运行这个JAR包。步骤如下:

创建JAR文件:

1
jar cvf HelloWorld.jar HelloWorld.class

创建可执行的JAR文件:

如果你的Java程序有main方法,可以创建一个可执行的JAR文件:

  1. 首先,创建一个manifest.txt文件,指定入口点:
1
Main-Class: HelloWorld
  1. 然后执行以下命令打包JAR文件:
1
jar cfm HelloWorld.jar manifest.txt HelloWorld.class
  1. 运行JAR文件:
1
java -jar HelloWorld.jar

打包成 JAR 文件另法

利用 jar 命令来对生成的字节码文件进行打包。

1
jar -cvf hello.jar HelloWorld.class

其中 c 表示创建一个新 jar 包,v 表示创建过程中打印创建过程中的信息,f 则表示对新生成的 jar 命名。

最后,利用以下命令来运行 jar 包。

1
java -jar hello.jar

不过并不会顺利出现我们想要的结果,此时会报错 hello.jar 中没有主清单属性。这是因为我们还没有在 MENIFEST.MF 文件中添加 Main-Class 属性。 

用压缩软件打开刚创建的 hello.jar,里边除了 HelloWorld.class 文件之外,还会多一个 META-INF 文件夹,里边还有一个 MENIFEST.MF 文件,此时我们只需要用编辑器打开该文件,然后在文件中加入以下代码。(记得添加之后要保证整个文件最后保留一行空行

1
Main-Class: HelloWorld

添加完成之后,再次运行 java -jar hello.jar ,就可以成功在控制台打印 Hello World! 了。

7. 常见的JDK命令总结

  • javac:Java编译器,将Java源文件(.java)编译为字节码文件(.class)。

    1
    javac HelloWorld.java

  • java:Java解释器,运行编译后的字节码(.class)文件。

    1
    java HelloWorld

  • jar:用于创建和管理JAR文件(Java归档文件),可以打包多个.class文件和其他资源。

    1
    jar cvf HelloWorld.jar HelloWorld.class

  • javadoc:用于生成Java源代码的API文档。

    1
    javadoc HelloWorld.java

  • javap:反编译.class文件,查看字节码或方法签名。

    1
    javap HelloWorld

8. 调试(jdb

如果需要调试Java程序,Java开发工具包还提供了jdb命令(Java Debugger),用于设置断点、检查变量等:

1
jdb HelloWorld

总结

Java程序的编译和运行过程主要使用到两个核心命令:javac(编译)和java(运行)。通过这些命令,可以编写、编译、运行Java代码。此外,jar命令允许将Java程序打包成JAR文件,javap可以反编译字节码,jdb可以调试Java程序。这些命令组合起来使得Java开发非常灵活且强大。


java_command
http://example.com/2024/09/14/java-command/
作者
JunBin Liang
发布于
2024年9月14日
许可协议