如何在 java 的清单文件中设置 main-class 和 class-path

how to set main-class and class-path in manifest file for java

我正在尝试了解 java 的清单文件中的 Main-Class 和 Class-Path。为什么不将 "C:/" 或“/”作为 Main-Class 或 Class-Path 路径的一部分?到目前为止,我看到的所有示例都以目录名称开头,即。 com/test/path 或 lib/test/path 等...

例如,如果我的 java 项目在 d:\java\sample_one\ 中,而我的 .java 和 .class 文件在 sample_one 中,我的 Class-路径设置为d:\java\sample_one\ ?

此外,为什么我看到的一些不同示例中 Main-Class 和 Class-Path 中的路径使用句点 . 而不是 f/b斜线 /\ ?

非常感谢任何帮助。谢谢

java 清单文件中的 Main-Class 属性旨在与 java -jar foo.jar 调用一起使用。它告诉 java 命令 Jar 文件中的 class 应该在使用上述命令行语法时执行其 main 方法。它基本上避免了必须在命令行上显式指定主要 class。

要记住的关键是 Main-Class 指的是 JAR 文件中的 class,而不是文件系统上的。

同样,Class-Path 属性允许您指定 java 应该位于 class 路径上的 jar 文件。同样,它避免了必须在命令行上使用 -classpath 参数指定它们。如果您使用支持的 jar 文件打包应用程序并且希望保持启动语法简单,那么这很方便。

与 Main-Class 属性相反,此处的条目引用文件系统中的 JAR 文件。

Main-Class 中的点标识 class 所在的包。它使用与 class 或导入中的包语句相同的语法约定陈述。将其视为代码目录结构的替代语法。

例如,如果您的代码结构为使用包名 com.acme 并且主 class 到 运行 被命名为 Checkout,那么 Main-Class属性将是 com.acme.Checkout,并且 Checkout.class 文件将位于 JAR 文件的 com/acme 子目录中。