运行 JAR 打包的软件

既然您已经学会了如何创建 JAR 文件,那么如何实际运行打包的代码?请考虑以下情形:

  • 您的 JAR 文件包含一个要在浏览器中运行的 Servlets。

  • 您的 JAR 文件包含一个将从命令行启动的应用程序。

  • 您的 JAR 文件包含您要用作 extensions 的代码。

本节将介绍前两种情况。 extension mechanism上的教程中的另一条记录介绍了 JAR 文件作为 extensions 的使用。

打包在 JAR 文件中的 Servlets

要从 HTML 文件启动任何要在浏览器中运行的 Servlets,请使用applet标记。有关更多信息,请参见Java Applets类。如果 ServletsBinding 为 JAR 文件,则您唯一需要做的不同就是使用* archive *参数指定 JAR 文件的相对路径。

例如,使用 TicTacToe 演示 Servlets。可以像这样标记显示 Servlets 的 HTML 文件中的applet标签:

<applet code=TicTacToe.class 
        width="120" height="120">
</applet>

如果 TicTacToe 演示程序打包在名为TicTacToe\.jar的 JAR 文件中,则可以通过添加archive参数来修改applet标签:

<applet code=TicTacToe.class 
        archive="TicTacToe.jar"
        width="120" height="120">
</applet>

archive参数指定包含TicTacToe\.class的 JAR 文件的相对路径。对于此示例,假定 JAR 文件和 HTML 文件位于同一目录中。如果不是,则必须在archive参数的值中包含 JAR 文件的相对路径。例如,如果 JAR 文件是 HTML 文件下方的一个名为applets的目录,则applet标记将如下所示:

<applet code=TicTacToe.class 
        archive="applets/TicTacToe.jar"
        width="120" height="120">
</applet>

JAR 文件作为应用程序

您可以使用 Java 启动器(java命令)运行 JAR 打包的应用程序。基本命令是:

java -jar jar-file

\-jar标志告诉启动程序该应用程序以 JAR 文件格式打包。您只能指定一个 JAR 文件,该文件必须包含所有特定于应用程序的代码。

在执行此命令之前,请确保运行时环境具有有关 JAR 文件中哪个类是应用程序的入口点的信息。

要指示哪个类是应用程序的入口点,必须在 JAR 文件的清单中添加Main\-ClassHeaders。Headers 采用以下形式:

Main-Class: classname

Headers 的值classname是作为应用程序入口点的类的名称。

有关更多信息,请参见设置应用程序的入口点部分。

在清单文件中设置Main\-Class时,可以从命令行运行该应用程序:

java -jar app.jar

要从另一个目录中的 JAR 文件运行应用程序,必须指定该目录的路径:java -jar path/app.jar