Java Jar文件-找不到主类

Java Jar文件-找不到主类,java,jar,build,classpath,mainclass,Java,Jar,Build,Classpath,Mainclass,因此,我有以下项目结构: 我有一个名为“com.github.liketechnik”的包。我的主要类是这个包中的Build(“com.github.liketechnik.Build”) 我以编程方式将编译后的类放入一个jar文件中,其中包含正确的清单,例如。G包含一个version属性和一个主类条目“com.github.liketechnik.Build”。jar中的类包含在“com/github/liketechnik/Build.class”下 运行java-jar output.ja

因此,我有以下项目结构: 我有一个名为“com.github.liketechnik”的包。我的主要类是这个包中的Build(“com.github.liketechnik.Build”)

我以编程方式将编译后的类放入一个jar文件中,其中包含正确的清单,例如。G包含一个version属性和一个主类条目“com.github.liketechnik.Build”。jar中的类包含在“com/github/liketechnik/Build.class”下

运行
java-jar output.jar
时直接失败:“错误:找不到或加载Mainclass com.github.liketechnik.Build”(翻译自德语)。当通过
java-cp build/main com.github.liketechnik.build
直接运行该类时(例如,直接在jar外部运行类文件),它可以正常工作

我试了几个小时,还搜索了每一个文件的打字错误,所以我非常感谢任何人对这个问题的帮助,因为所有其他关于这些问题的线程对我都没有帮助。如果您需要更多的信息或直接的源代码,我会毫不犹豫地提供给您

编辑:添加了jar文件的结构

jar文件具有以下结构:

  • 一个目录“META-INF”,包含“MANIFEST.MF”和上述条目

  • 一个目录结构“com/github/liketechnik/Build.class”(例如,还包含其他类(在子包中)

舱单:

Manifest-Version: 1.0
Main-Class: com.github.liketechnik.Build
Build.java:

手动运行时的输出:
Hi
(如预期)
从jar运行时的输出:
Fehler:Hauptklasse com.github.liketechnik.Build konnte nicht gefunden order geladen werden
(为什么?)

好的,似乎以编程方式创建.jar归档并不像看起来那么容易。它似乎在.zip规范之下需要处理()是另一个警告,因此需要在目录层次结构之后添加条目

例如:
假设您有目录
a
b
b
包含文件
test.class
toll.class
,您必须首先添加
a
,然后添加
b
,然后添加
b
中的文件。否则它将不起作用。

JAR文件的结构是什么样的?您可以用任何方法打开它ZIP工具。编辑了显示结构的我的答案。我也检查了这个文件,它似乎对我来说也是正确的。而不是描述文件的内容(如清单),只需通过直接复制和粘贴来显示它们。您不必粘贴整个内容,但显示相关部分比单独的英文描述更有帮助。还要阅读。您应该提供重现您遇到的问题的确切代码,以便其他任何人都可以复制和粘贴它以供自己查看。是吗是这样的吗?或者我应该附加什么让它更容易理解?
package com.github.liketechnik;

public class Build {

    public static void main(String[] args) {
        System.out.println("Hi");
    }
}