我试图掌握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-Path可以设置为d:\java\sample_one\
吗?
另外,为什么我见过的一些示例中的Main-Class和Class-Path中的路径使用句点.
而不是f / b斜杠/\
?
非常感谢任何帮助。谢谢
答案 0 :(得分:2)
java清单文件中的Main-Class属性旨在与java -jar foo.jar
调用一起使用。它告诉java命令在使用上述命令行语法时,Jar文件中的哪个类应该执行其main
方法。它基本上避免了必须在命令行上显式指定主类。
要记住的一个关键事项是,Main-Class引用了一个包含在JAR FILE中的类,而不是在文件系统上。
类似地,Class-Path属性允许您指定应该在类路径上的Java jar文件。同样,它避免了必须使用-classpath
参数在命令行上指定它们。如果您使用支持jar文件打包应用程序并且希望保持简单的启动语法,那么很方便。
与Main-Class属性相反,此处的条目是指文件系统中的JAR文件。
Main-Class中的点标识类所在的包。它使用与类或包语句中的package语句相同的语法约定。可以将其视为代码目录结构的替代语法。
例如,如果您的代码构造为使用包名com.acme并且要运行的主类名为Checkout,那么Main-Class属性将是com.acme.Checkout,Checkout.class文件将在JAR文件的com / acme子目录中。