【问题标题】:Setting a path for the main-class in the manifest file在清单文件中设置主类的路径
【发布时间】:2015-05-17 00:51:51
【问题描述】:

例如,我的 manifest.txt 文件保存在我的 bin 目录的父目录中,其中保存了类。现在,我希望能够在清单头中引用我的主类,以便我可以直接从父目录创建我的 JAR 文件。 例如: 我的 manifest.txt 保存在名为 project 的目录中:

-项目(父目录)包含: bin(这包含我运行应用程序所需的类) ,src(文件夹) 和 manifest.txt

所以在一个完美的世界里,我会想象我的 manifest.txt 看起来像这样: 主类:bin/mainclass

但由于某种原因,这不起作用。有什么想法吗?

【问题讨论】:

    标签: java jar manifest main entry-point


    【解决方案1】:

    Main-Class 属性必须包含主类的完全限定名称。这与您的项目的布局方式无关。如果类名为Foo,并且在包com.bar中,则主类为com.bar.Foo

    如果类 Foo 在默认包中,这是一个不好的做法,那么它的完全限定名称是Foo。但在这种情况下,您应该做的第一件事就是将类移动到包中。

    当您从任何目录执行java -jar path/to/myjar.jar 时,java 将检查 jar,读取清单文件,查找 Main-Class,然后从 jar 中加载它。

    【讨论】:

    • 假设我想将它保存在默认包中,并且我想从父目录访问它(即将它设置为清单中的主类)。有没有办法设置通向它的路径?所以清单理论上可能看起来像这样: Main-Class: bin/foo
    • 你为什么关心目录?该类在 jar 中,您可以通过清单告诉 java,ar 中的哪个类是主要的。无论您是从 bin、c:\ 还是运行另一个操作系统的另一台机器都没有关系:jar 文件就是 jar 文件。
    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 2013-06-19
    • 2014-02-11
    • 2011-02-07
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 2012-03-03
    相关资源
    最近更新 更多