比如说,我的manifest.txt文件保存在我的bin目录的父目录中,其中保存了类。现在,我希望能够在清单头中引用我的主类,以便我可以直接从父目录创建我的JAR文件。 例如: 我的manifest.txt保存在名为project的目录中:
-project(父目录)包含: bin(这包含运行应用程序所需的类) ,SRC(文件夹) 和manifest.txt
所以在一个完美的世界里,我会想象我的manifest.txt看起来像这样: Main-Class:bin / mainclass
但由于某些原因,这不起作用。有什么想法吗?
答案 0 :(得分:0)
Main-Class属性必须包含主类的完全限定名称。这与您的项目布局无关。如果该类名为Foo
且位于包com.bar
中,则主类为com.bar.Foo
。
如果类Foo在默认包中,这是一种不好的做法,那么它的完全限定名称是Foo
。但在这种情况下你应该做的第一件事就是将类移到一个包中。
当您从任何目录执行java -jar path/to/myjar.jar
时,java将检查jar,读取清单文件,查找Main-Class,并从jar中加载它。